Я пытаюсь создать игру, в которой игрок движется к мыши. Я установил простой способ перемещения игрока с помощью Vector2.MoveTowards для перемещения к Input.mousePosition. Но значения позиции мыши слишком велики, и она все равно учитывает мою позицию, когда мои нравы находятся за пределами игрового экрана.
Я пробовал использовать Camera.ScreenToWorldPoint, но после реализации это не сработало. это (однако я, возможно, реализовал это неправильно, поскольку использую Camera.ScreenToWorldPoint впервые).
public class PlayerMoveWithMouse : MonoBehaviour
{
[SerializeField] float speed = 5f;
private Camera cam;
Vector3 point = new Vector3();
// Start is called before the first frame update
void Start()
{
cam = Camera.main;
}
void Update()
{
point = cam.ScreenToWorldPoint(new Vector3(Input.mousePosition.y,
Input.mousePosition.x, cam.nearClipPlane));
transform.position = Vector2.MoveTowards(transform.position,
point, speed * Time.deltaTime);
}
Подробнее здесь: https://stackoverflow.com/questions/784 ... e-in-unity