首页 > 代码库 > Unity 3D中的Transform.Rotate 与Transform.RotateAround 的区别

Unity 3D中的Transform.Rotate 与Transform.RotateAround 的区别

Transform.Rotate 旋转

应用一个欧拉角的旋转角度,eulerAngles.z度围绕z轴,eulerAngles.x度围绕x轴,eulerAngles.y度围绕y轴(这样的顺序)。

如果相对于留空或者设置为Space.Self 旋转角度被应用围绕变换的自身轴。(当在场景视图选择物体时,x、y和z轴显示)如果相对于 Space.World 旋转角度被应用围绕世界的x、y、z轴。

 

1 gameObject.transform.Rotate(new Vector3(0,1,0),Input.GetAxis("Horizontal");//表示按下左右键围绕Y轴旋转,旋转的方式如下图:

 

可以看出旋转中心与旋转轨道有一定的距离。就像地球绕太阳公转一样。

 

 

 

Transform.RotateAround 围绕旋转

按照angle度通过在世界坐标的point轴旋转物体。

简单的说,按照多少度在世界坐标的某位置轴旋转物体。

gameObject.transform.RotateAround(new Vector3(0, 0, 0), new Vector3(0, 1.0f, 0), Speed * Time.deltaTime * Input.GetAxis("Horizontal"));//表示按下左右移动键是,物体在指定的一点绕这Y轴旋转。旋转的方式如下图:

就像地球的自传一样。