Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使圆柱体点成为unity3d中的对象_C#_3d_Unity3d - Fatal编程技术网

C# 使圆柱体点成为unity3d中的对象

C# 使圆柱体点成为unity3d中的对象,c#,3d,unity3d,C#,3d,Unity3d,我刚刚开始学习Unity3D游戏开发框架。当按下某个键时,我试图使圆柱体“指向”另一个对象 public GameObject target; void Update () { if (Input.GetKeyDown(KeyCode.A)) { ??? } } 我知道我必须使用目标和圆柱体的位置来改变圆柱体的旋转,但我不知道如何改变,我想我还不知道这些四元数是什么 我真的很感激任何帮助! 谢谢, Manuel首先,你的圆柱体需要在圆柱体的局部空间中有一些“向前

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

public GameObject target;
void Update () {
    if (Input.GetKeyDown(KeyCode.A)) {
        ???
    }
}
我知道我必须使用目标和圆柱体的位置来改变圆柱体的旋转,但我不知道如何改变,我想我还不知道这些四元数是什么

我真的很感激任何帮助! 谢谢,

Manuel

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

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

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


请注意,如果圆柱体的深度超过两层,然后你可能需要稍微改变这种方法的机制,以可能解释父母的变换。

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

Ducky所说的是正确的,但是如果你对四元数有困难,我建议你在更好地理解这些角度集之前不要使用它们


希望有帮助

顺便说一句,这些网站可能会提供更快的答案: