Unity中的旋转通常可以用Transform 直接控制和 rotation 控制两种方式。
一、Transform控制(工程中的scene1)
1.1 Transform.Rotate
旋转某个角度
函数定义
[csharp] view plain copy
-
public void Rotate(Vector3 eulerAngles);
-
public void Rotate(Vector3 axis, float angle);
-
public void Rotate(Vector3 eulerAngles, Space relativeTo);
-
public void Rotate(float xAngle, float yAngle, float zAngle);
-
public void Rotate(Vector3 axis, float angle, Space relativeTo);
-
public void Rotate(float xAngle, float yAngle, float zAngle, Space relativeTo);
这个函数通常用于Update函数中,用于不断的旋转。如下
[csharp] view plain copy
-
void Update () {
- //以每秒rotateSpeed的速度绕着y轴旋转
- transform.Rotate(0, rotateSpeed * Time.deltaTime, 0);
- }
1.2 Transform.RotateAround
以某点为中心旋转。
函数定义
[csharp] view plain copy
-
public void RotateAround(Vector3 axis, float angle);
-
public void RotateAround(Vector3 point, Vector3 axis, float angle);
这个函数通常也在Update中,不断地围绕着点运动。如下:
[csharp] view plain copy
-
void Update ()
- {
- //在Y轴以每秒rotateSpeed的速度围绕着transformCenter 旋转。
- //这会改变物体的位置和旋转。
- transform.RotateAround(transformCenter.position,Vector3.up,rota