Unity3d 将变换旋转从X轴更改为Z轴
我有一个围绕X轴旋转的变换。但是当把这个旋转转移到另一个变换时,我希望它做完全相同的旋转。然后绕Z轴 但是,此旋转不是“旋转”,它只是从外部编辑旋转的变换。所以我必须旋转原始变换以匹配第二个变换,但要考虑旋转 下图中的轴:红色=X,绿色=Y,蓝色=Z 轮换原件: 在下列情况下,应进行旋转: 一帧一帧的正确方法是什么 提前感谢,Unity3d 将变换旋转从X轴更改为Z轴,unity3d,rotation,quaternions,Unity3d,Rotation,Quaternions,我有一个围绕X轴旋转的变换。但是当把这个旋转转移到另一个变换时,我希望它做完全相同的旋转。然后绕Z轴 但是,此旋转不是“旋转”,它只是从外部编辑旋转的变换。所以我必须旋转原始变换以匹配第二个变换,但要考虑旋转 下图中的轴:红色=X,绿色=Y,蓝色=Z 轮换原件: 在下列情况下,应进行旋转: 一帧一帧的正确方法是什么 提前感谢, 微笑我可以给你一个答案,解决从一个轴到另一个轴的旋转的一般问题 每个变换对象都有一个transform.localRotation属性,该属性表示变换相对于父对象方向
微笑我可以给你一个答案,解决从一个轴到另一个轴的旋转的一般问题 每个变换对象都有一个
transform.localRotation
属性,该属性表示变换相对于父对象方向的方向。如果变换没有父对象,则此方向相对于世界空间
Quaternion
是用于表示旋转的数据类型,它有一个有用的方法称为
将变量angle
和axis
设置为localRotation
的角度和轴。out
部分表示您正在传入一个变量,该变量将由函数设置,而不是用作输入
在这种情况下,angle
变量就是您想要实际使用的部件。如果使用,则提供此角度值和所需轴,将获得与所需参数匹配的新旋转
例如:要将transform1
的任何旋转更改为transform2
上的Z轴旋转,可以使用
float angle;
float axis;
transform1.localRotation.ToAngleAxis(out angle, out axis);
transform2.localRotation = Quaternion.AngleAxis(angle, Vector3.forward);
希望这有帮助
float angle;
float axis;
transform1.localRotation.ToAngleAxis(out angle, out axis);
transform2.localRotation = Quaternion.AngleAxis(angle, Vector3.forward);