200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > unity物体自身轴旋转_Unity 中物体的旋转

unity物体自身轴旋转_Unity 中物体的旋转

时间:2023-05-19 13:27:57

相关推荐

unity物体自身轴旋转_Unity 中物体的旋转

准备工作

建三个 Cube,并设置好父子关系,先把三个物体的旋转都归零。

层级结构

场景视图

让物体绕自己的某一个轴旋转

代码如下:

using UnityEngine;

public class NewBehaviourScript : MonoBehaviour

{

public Transform childCube1;

public Transform childCube2;

void Update()

{

Quaternion rotU = Quaternion.AngleAxis(100 * Time.deltaTime, Vector3.up);

childCube1.transform.rotation = childCube1.transform.rotation * rotU;

childCube2.transform.localRotation = childCube2.transform.localRotation * rotU;

}

}

还是保持三个 Cube 旋转都为 0,可以看到两个子物体是绕着自己的 up 轴旋转的。

旋转都为 0 的时候

将两个子物体的旋转的 x 轴改为 45,可以看到两个子物体是绕着自己的 up 轴旋转的。

子物体 x 轴旋转为 45

将父物体的旋转 x 轴也改成 45,可以看到两个子物体还是绕着自己的 up 轴旋转的。

父物体、子物体的 x 轴都是 45

让物体绕世界坐标轴旋转

还是保持三个 Cube 旋转都为 0,可以看到子物体是绕着世界 up 轴旋转的。

旋转都为 0 的时候

将子物体的旋转的 x 轴改为 45,并把显示的坐标轴从 Local 变成 Global,可以看到子物体依然绕着世界 up 轴旋转。

子物体 x 轴旋转为 45

将父物体的旋转 x 轴也改成 45,可以看到子物体依然绕着世界 up 轴旋转。

父物体、子物体的 x 轴都是 45

让物体绕父物体某一个轴旋转

代码如下:

using UnityEngine;

public class NewBehaviourScript : MonoBehaviour

{

public Transform childCube1;

void Update()

{

Quaternion rotU = Quaternion.AngleAxis(200 * Time.deltaTime, Vector3.up);

childCube1.transform.localRotation = rotU * childCube1.transform.localRotation;

}

}

将父物体的 x 轴旋转设置为 90,将子物体的 x 轴旋转设置为 -90,可以看到子物体是按照父物体的 up 轴进行旋转的。

父物体的 x 轴旋转设置为 90,子物体的 x 轴旋转设置为 -90

总结

所有的旋转都是顺时针的。

参考

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。