【发布时间】:2020-06-22 06:37:19
【问题描述】:
我的敌人/机器人朝向错误的方向,如所附屏幕截图 1 所示。基本上我想要的是敌人/机器人的枪应该直接面对玩家,而不是敌人/机器人自己。
注意:图中白线代表瞄准方向 是正确的。
这是我的代码:
Vector3 targetPosition = kbcrd.playerToEngage.thirdPersonPlayerModel.shootTarget.position;
targetPosition .y = 0;
Vector3 botPosition = pb.thirdPersonPlayerModel.gunDirection.position;
botPosition.y = 0;
Quaternion targetRotation = Quaternion.LookRotation(targetPosition - botPosition);
//pb is Bot which is holding transform and other scripts.
pb.transform.rotation = Quaternion.RotateTowards(pb.transform.rotation, targetRotation, kbcrd.lookingInputSmooth);
感谢任何帮助。我知道它的简单问题,但我现在很挣扎。 :(
【问题讨论】:
-
您的机器人枪是否与其
transform.forward轴对齐? -
是的。我正在添加参考图像。
-
嗯,这就是非动画/装配模型的情况......动画状态也是如此吗?
-
玩家和机器人都是动画的。
-
是的,但是在瞄准状态下,敌方物体的局部前轴看起来如何?它仍然与枪的方向匹配吗?你怎么画白线?也许你可以插入一个
Debug.DrawLine(botPosition, targetPosition - botPosition, Color.red);,它应该与所需的方向匹配
标签: c# unity3d rotation quaternions