【问题标题】:making a cylinder point an object in unity3d在unity3d中使圆柱点成为对象
【发布时间】:2011-09-04 19:41:26
【问题描述】:

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

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

我知道我必须使用目标和圆柱体的位置来改变圆柱体的旋转,但我不知道如何,我想我还不明白那些四元数是什么。

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

【问题讨论】:

标签: c# 3d unity3d


【解决方案1】:

首先,您的圆柱体在圆柱体的本地空间中需要一些“前进”概念或其“指向”(我的话)。为此,您可以假设(或直观地看到)+X、+Y、+Z、-X、-Y 或 -Z;或者您可以指定自己的任意向量指向其他方向。

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

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

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

【讨论】:

    【解决方案2】:

    你使用四元数有什么原因吗?我会使用四元数。欧拉角将四元数表示为向量 3,这是我们通常理解角度的方式。

    Ducky 说的是正确的,但是如果您在使用四元数时遇到问题,我建议您不要使用它们,直到您对这些角度集有了更好的理解。

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多