c# - 在unity3d中使圆柱体指向一个对象

标签 c# 3d unity-game-engine

我刚刚开始学习Unity3D游戏开发框架。我试图在按下某个键时使圆柱体“指向”另一个物体。

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

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

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

最佳答案

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

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

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

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

关于c# - 在unity3d中使圆柱体指向一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7301682/

相关文章:

c# - 如何为 XML 创建 XPath?

c# - 为什么这个泛型类会产生编译器错误?

按顺时针顺序对 3D 点列表进行排序

python - 在 Python 3 中与 3D 对象交互?

ios - 网格粒子发射器

unity-game-engine - Unity3d Assetbundles加载场景

unity-game-engine - 是否可以使用 Unity 在运行时创建 2D 动画?

c# - 线程导致应用程序在 iOS 上滞后,但在 Android 上不会

c# - TypeScript 中的 "Structural Typing for Interfaces"是什么

CSS 变换父项和固定子项