我刚刚开始学习Unity3D游戏开发框架。当按下某个键时,我正在尝试使气缸“点”另一个对象。

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

我知道我必须使用目标和圆柱体的位置来改变圆柱体的旋转,但是我不知道如何改变,我认为我不了解这些四季度是什么。

我非常感谢任何帮助!谢谢,
曼努埃尔

有帮助吗?

解决方案

首先,您的圆柱体需要在气缸本地空间中的“前进”或其“指向方向”(我的话)的概念。为此,您可以假设(或视觉看) +x, +y, +z,-x,-y或-z;或者,您可以指定自己的任意向量指向其他方向。

其次,您需要到一个从圆柱体中心指向另一个对象中心的向量(您已经提到了这一点)。

现在,您可以使用Unity的 Quaternion.FromToRotation(...) 为了产生一个四元组,如果应用于圆柱体的世界旋转,将旋转指向方向,以朝其他物体的方向旋转。完毕。

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

其他提示

是否有理由是为什么您要使用四元素,我会使用四元素。将四元素表示为矢量3的eular角度,这就是我们通常理解角度的方式。

Ducky所说的是正确的,但是,如果您在四合一方面遇到麻烦,我建议您不使用它们,直到您对这些角度组有更好的了解。

希望能帮助到你

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top