C# Unity3d四元数LookRotation未返回正确的值
我想要一个投射物来观察目标对象,为此我使用四元数LookRotation,如下所示C# Unity3d四元数LookRotation未返回正确的值,c#,unity3d,quaternions,euler-angles,projectile,C#,Unity3d,Quaternions,Euler Angles,Projectile,我想要一个投射物来观察目标对象,为此我使用四元数LookRotation,如下所示 targetRotation = Quaternion.LookRotation(targetPosition - projectile.transform.position); if(targetRotation.eulerAngles.magnitude <= 60) projectile.transform.rotation = targetRotation; targetRotation=Qu
targetRotation = Quaternion.LookRotation(targetPosition - projectile.transform.position);
if(targetRotation.eulerAngles.magnitude <= 60)
projectile.transform.rotation = targetRotation;
targetRotation=Quaternion.LookRotation(targetPosition-sparket.transform.position);
if(targetRotation.eulerAngles.magnitude四元数.LookRotation(targetPosition-Spolder.transform.position)
表示“给我一个四元数,表示向量从上到targetPosition-Spolder.transform.position的旋转。”.eulerAngles
只是旋转的另一种表示形式,从它的大小中不会得到任何有意义的东西
我怀疑你不想这样。相反,我怀疑你想知道抛射体是否需要从其当前前进方向旋转60度以上。在这种情况下,你可能需要检查抛射体的前进方向向量和朝向目标的方向向量之间的角度
我没有打开Unity,所以我不知道它是否编译,但它应该是这样的:
var directionToTarget = targetPosition - projectile.transform.position;
var angleToTarget = Vector3.Angle(projectile.transform.forward, directionToTarget);
if (angleToTarget < 60) ...
var directionToTarget=targetPosition-sparket.transform.position;
var angleToTarget=矢量3.角度(投射、变换、前进、方向ToTarget);
如果(角度目标<60)。。。
你提到你想要一个更“真实”的转弯。如果弹丸超过60度,你希望它做什么?四元数。LookRotation(targetPosition-sparket.transform.position)
的意思是“给我一个四元数,它表示向量从上向上旋转到目标位置-投射物.transform.position
”eulerAngles
只是旋转的另一种表示,它的大小没有任何意义
我怀疑你不想这样。相反,我怀疑你想知道抛射体是否需要从其当前前进方向旋转60度以上。在这种情况下,你可能需要检查抛射体的前进方向向量和朝向目标的方向向量之间的角度
我没有打开Unity,所以我不知道它是否编译,但它应该是这样的:
var directionToTarget = targetPosition - projectile.transform.position;
var angleToTarget = Vector3.Angle(projectile.transform.forward, directionToTarget);
if (angleToTarget < 60) ...
var directionToTarget=targetPosition-sparket.transform.position;
var angleToTarget=矢量3.角度(投射、变换、前进、方向ToTarget);
如果(角度目标<60)。。。
你提到你想要一个更“现实”的"转弯。如果弹丸高度超过60度,你想让它做什么?太酷了!让我试试这个,对于你的答案,如果超过60度,我让弹丸朝最后一个转弯方向移动。太酷了!让我试试这个,对于你的答案,如果超过60度,我让弹丸朝我移动最后一个转弯方向。