У меня есть метод, который будет вращать мой объект до той точки, на которую нажимала моя мышь. Однако мой объект вращается только до тех пор, пока моя кнопка мыши удерживается нажатой.Поверните объект в направлении мыши
Мой главный метод вращения заключается в следующем:
void RotateShip()
{
Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition);
Debug.Log (Input.mousePosition.ToString());
Plane playerPlane = new Plane (Vector3.up, transform.position);
float hitdist = 0.0f;
if (playerPlane.Raycast (ray, out hitdist))
{
Vector3 targetPoint = ray.GetPoint (hitdist);
Quaternion targetRotation = Quaternion.LookRotation (targetPoint - transform.position);
transform.rotation = Quaternion.Slerp (transform.rotation, targetRotation, speed * Time.deltaTime);
}
}
Я называю этот метод внутри метода FixedUpdate
и я завернул его в следующее, если заявление:
void FixedUpdate()
{
// Generate a plane that intersects the transform's position with an upwards normal.
// Generate a ray from the cursor position
if (Input.GetMouseButton (0))
{
RotateShip();
}
}
Однако объект по-прежнему вращаются только до тех пор, пока моя кнопка мыши удерживается нажатой. Я хочу, чтобы мой объект продолжал вращаться до той точки, где моя мышь просто щелкнула, пока не достигнет этой точки.
Как правильно изменить свой код?
Я отредактировал ваше название. Пожалуйста, смотрите: «Если вопросы включают« теги »в их названиях?] (Http://meta.stackexchange.com/questions/19190/), где консенсус« нет, они не должны ». –