我刚刚开始学习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/