Функция вращения игрока с помощью положения мыши основана на расстоянии мыши, а не от положения - PullRequest
0 голосов
/ 03 марта 2020

Я следовал за ответом на форумах Unity о том, как вращать объект в соответствии с положением мыши. Код работает для изменения поворота, но он использует некоторый другой параметр для поворота объекта, как вы можете видеть в этой записи.

enter image description here

Вот мой код для обнаружения мыши и редактирования позиции (из функции Game.cs * update():

playerLocation = PlayerScript.position;
playerRotation = PlayerScript.rotation;
mousePosition = Input.mousePosition;

mousePosition.z = 5.23f;
Vector3 objectPosition = Camera.main.WorldToScreenPoint (playerLocation);
mousePosition.x = mousePosition.x - playerLocation.x;
mousePosition.y = mousePosition.y - playerLocation.y;
float angle = Mathf.Atan2(mousePosition.y, mousePosition.x) * Mathf.Rad2Deg;
playerRotation = new Vector3(0f, 0f, angle);

Вот код для применения позиции (из функции PlayerScript.cs update().: * 10101 *

playerLocation = PlayerScript.position;
playerRotation = PlayerScript.rotation;
mousePosition = Input.mousePosition;

mousePosition.z = 5.23f;
Vector3 objectPosition = Camera.main.WorldToScreenPoint (playerLocation);
mousePosition.x = mousePosition.x - playerLocation.x;
mousePosition.y = mousePosition.y - playerLocation.y;
float angle = Mathf.Atan2(mousePosition.y, mousePosition.x) * Mathf.Rad2Deg;
playerRotation = new Vector3(0f, 0f, angle);

Если вам нужна дополнительная информация, пожалуйста, прокомментируйте ее.

1 Ответ

1 голос
/ 04 марта 2020

Во-первых, вы, кажется, подразумеваете, что у вас есть этот код на двух разных объектах. Вы должны создать один скрипт под названием «LookAtMouse». Что бы вы ни надели на это, если что будет смотреть на мышь.

public Camera cam;
void Update() {

  Vector3 direction = Input.mousePosition - cam.WorldToScreenPoint(transform.position);
  float angle = Mathf.Atan2(direction.y, direction.x) * Mathf.Rad2Deg;
  transform.rotation = Quaternion.AngleAxis(angle, Vector3.forward);

}

Так что это должно быть только на плеере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...