Я пытаюсь создать скрипт, который преобразует позицию щелчка мышью в позицию в GridLayout. Я пытаюсь использовать Camera.main.ScreenToWorldPoint (), но его возвращаемые координаты камеры, а не точки, по которой щелкнули, не отображаются, если я использую статическую камеру или камеру, установленную на плеере. Я прикрепил этот скрипт к префабу CharacterRobotBoy из стандартных ресурсов для единства.
using UnityEngine;
public class Position : MonoBehaviour
{
void Update()
{
if (Input.GetMouseButtonUp(0))
{
Vector3 pz = Camera.main.ScreenToWorldPoint(Input.mousePosition);
Debug.Log("camera:"+pz);
pz.z = 0;
GridLayout gridLayout = transform.parent.GetComponentInParent<GridLayout>();
Vector3Int cellPosition = gridLayout.WorldToCell(pz);
Debug.Log("cell position:"+cellPosition);
}
}
}
Можно ли исправить мой код для задачи или есть другое решение проблемы. Спасибо за вашу помощь.
PS: я новичок в единстве.