好的,所以我有多个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();
}
}