Как узнать, когда я достиг конца вращения - PullRequest
0 голосов
/ 13 сентября 2018

Хорошо, у меня есть кратное значение GameObjects, к которому я поворачиваюсь.Я пытаюсь увидеть, если playerAgentBase.transform.rotation == lookRotation.

Проблема, с которой я сталкиваюсь, заключается в том, что иногда поворот playerAgentBase имеет отрицательные значения, а lookRotation имеет положительные значения.Таким образом, оператор if никогда не становится true.Я не уверен, почему это происходит.Иногда это работает, а иногда нет.Когда он не работает, он поворачивается к неправильному объекту.

Есть ли лучший способ проверить, когда мой поворот достиг цели?

Любая помощь будет оценена.Спасибо.

private void Start()
{
    rotate = true;
}

public void RotateTowards()
{
    float strength = 1.5f;
    float str = 0f;

    if (playerAgentBase != null)
    {
        Vector3 direction = (transform.position - playerAgentBase.transform.position);
        direction.y = 0;
        str = Mathf.Min(strength * Time.deltaTime, 1);
        Quaternion lookRotation = Quaternion.LookRotation(direction);
        playerAgentBase.transform.rotation = Quaternion.Slerp(playerAgentBase.transform.rotation, lookRotation, 10f);
        //Here is where my problem is  
        if (playerAgentBase.transform.rotation == lookRotation) //<-------------------
         {
             rotate = false;
             InteractA();
         }
     }
 }

 public void Update()
 {
     if (rotate)
     {
         RotateTowards();
     }
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...