Unity 中绕某个物体旋转方法
简介
- 旋转主要是用以下方法:
- Transform.Rotate
- Transform.RotateAround
使用方法描述
Transform.Rotate
描述
世界轴旋转使用 Scene 的坐标系,因此在开始旋转 GameObject 时,它的 x、y 和 z 轴与 x、y 和 z 世界轴对齐。所以,如果在世界空间中旋转一个立方体,它的轴就会与世界对齐。在 Unity 编辑器的 Scene 视图中选中一个立方体时,将显示左 Gizmos 下以及正向/反向旋转轴的旋转 Gizmos。移动这些 Gizmos 将使立方体绕轴旋转。如果取消选择然后重新选择该立方体,这些轴将重新开始在世界中对齐。
本地旋转使用 GameObject 本身的坐标系。因此,新建的立方体将使用设置为零旋转的 x、y 和 z 轴。旋转该立方体将更新旋转轴。如果取消选择然后重新选择该立方体,将按之前的相同方向显示这些轴。
例如
1 | public void Rotate (Vector3 eulers, Space relativeTo= Space.Self); |
- 例子
1 | using UnityEngine; |
Transform.RotateAround
- 描述
- 将变换围绕穿过世界坐标中的 point 的 axis 旋转 angle 度。
- 参数
1
public void RotateAround (Vector3 point, Vector3 axis, float angle);
- 参数详解
- point: 目标坐标点
- axis: 旋转轴,如:
new Vector3(1,0,0)
为绕 x 轴旋转。 - angle: 需旋转角度的变量(增量或减量)
- 例子
1 | using UnityEngine; |
实际应用
- 代码如下:
1 |
|
- 目的:通过上下按键控制相机沿 x 轴对目标物体转动同时限制 x 轴坐标范围为(50,90),对大于目标坐标的值予以过滤并提示用户反向操作以达到目的。