使圆柱指向unity3d中的对象

时间:2011-09-04 19:41:27

标签: c# 3d unity3d

我刚开始学习Unity3D游戏开发框架。当按下某个键时,我正试图使圆柱“指向”另一个对象。

public GameObject target;
void Update () {
    if (Input.GetKeyDown(KeyCode.A)) {
        ???
    }
}

我知道我必须使用目标和圆柱的位置来改变圆柱体的旋转,但我无法弄清楚如何,我不认为我理解这些四元数是什么。

我真的很感激任何帮助! 谢谢,
曼努埃尔

2 个答案:

答案 0 :(得分:2)

首先,你的圆柱体在圆柱体的局部空间中需要一些“向前”或“指向”(我的话)的概念。为此你可以假设(或视觉上看)+ X,+ Y,+ Z,-X,-Y或-Z;或者你可以指定你自己的任意向量指向其他方向。

其次,你需要一个从你的圆柱体中心指向另一个物体中心的矢量(你已经提到过了)。

现在,您可以使用Unity的Quaternion.FromToRotation(...)生成四元数,如果应用于圆柱体的世界旋转,则会将指向方向旋转到另一个对象的方向。完成。

请注意,如果您的圆柱体超过一对变换深度,那么您可能需要稍微改变这种方法的机制,以便可能考虑父母的变换。

答案 1 :(得分:0)

为什么你使用Quaternions我会使用Quaternions.Eular角度代表四元数作为向量3,这是我们通常理解角度的原因。

Ducky所说的是正确的,但是如果你遇到了Quaternions的麻烦,我会建议你不要使用它们,直到你对这些角度设置有了更好的理解。

希望有所帮助