【发布时间】:2020-04-15 12:14:09
【问题描述】:
所以,我正在开发 Unity 项目。我有一个迫击炮,它倾向于玩家游戏对象。我想旋转它,让它跟随玩家的运动。 我在我的 Update 方法中想出了这个简单的代码:
Vector3 directionToFace = _player.position - transform.position;
directionToFace.y = 0;
Debug.DrawRay(transform.position, directionToFace, Color.green); // for visualization
transform.rotation = Quaternion.LookRotation(directionToFace);
但是将 y 设置为 0 会将 x 轴的旋转上限设置为 0,但我希望我的迫击炮向前倾斜一点。我尝试将 y 设置为许多不同的值,但是两个物体之间的距离决定了迫击炮的倾斜程度。是的,我知道我可以将其设为空游戏对象的子对象并将脚本应用于父对象,但如果有任何其他方法可以在我的代码中解决此问题...您的帮助将不胜感激。
我唯一的想法是计算两个游戏对象之间的距离并相应地更改 directionToFace.y 的值。但是我必须在检查器中获得分配给迫击炮的局部旋转,然后使用勾股定理计算值......但我不想那么折磨自己:D
【问题讨论】:
-
我不明白你的目标....
I want my mortar to be leaned forward a bit到底是什么意思?
标签: c# unity3d quaternions