我计算无人机需要转向的角度,以便它能够看到玩家。我明白了,但是无人机可以改变目标,并且在目标改变期间它会突然改变其旋转。如何才能让这个过渡顺利进行?
var finalAngle = Vector3.Angle(targetPosition - _droneTransform.localPosition, _droneTransform.forward);
_droneTransform.localEulerAngles = new Vector3(_finalPitch, finalAngle, _finalRoll);
您可以使用Vector3.RotateTowards()
https://docs.unity3d.com/ScriptReference/Vector3.RotateTowards.html https://docs.unity3d.com/ScriptReference/Vector3.RotateTowards.html
在这种情况下,为了防止万向节锁定问题,我建议预先计算四元数旋转并使用Quaternion.RotateTowards()
https://docs.unity3d.com/ScriptReference/Quaternion.RotateTowards.html https://docs.unity3d.com/ScriptReference/Quaternion.RotateTowards.html
使用预先计算旋转Quaternion.Euler()
https://docs.unity3d.com/ScriptReference/Quaternion.Euler.html https://docs.unity3d.com/ScriptReference/Quaternion.Euler.html
获得针对目标的旋转的最快方法是使用Quaternion.LookRotation()
https://docs.unity3d.com/ScriptReference/Quaternion.LookRotation.html https://docs.unity3d.com/ScriptReference/Quaternion.LookRotation.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)