我刚开始学习Unity3D游戏开发框架。当按下某个键时,我正试图使圆柱“指向”另一个对象。
public GameObject target;
void Update () {
if (Input.GetKeyDown(KeyCode.A)) {
???
}
}
我知道我必须使用目标和圆柱的位置来改变圆柱体的旋转,但我无法弄清楚如何,我不认为我理解这些四元数是什么。
我真的很感激任何帮助!
谢谢,
曼努埃尔
答案 0 :(得分:2)
首先,你的圆柱体在圆柱体的局部空间中需要一些“向前”或“指向”(我的话)的概念。为此你可以假设(或视觉上看)+ X,+ Y,+ Z,-X,-Y或-Z;或者你可以指定你自己的任意向量指向其他方向。
其次,你需要一个从你的圆柱体中心指向另一个物体中心的矢量(你已经提到过了)。
现在,您可以使用Unity的Quaternion.FromToRotation(...)
生成四元数,如果应用于圆柱体的世界旋转,则会将指向方向旋转到另一个对象的方向。完成。
请注意,如果您的圆柱体超过一对变换深度,那么您可能需要稍微改变这种方法的机制,以便可能考虑父母的变换。
答案 1 :(得分:0)
为什么你使用Quaternions我会使用Quaternions.Eular角度代表四元数作为向量3,这是我们通常理解角度的原因。
Ducky所说的是正确的,但是如果你遇到了Quaternions的麻烦,我会建议你不要使用它们,直到你对这些角度设置有了更好的理解。希望有所帮助