Unity学习笔记——Part 10
一、坐标与旋转
1. 节点的坐标、旋转
节点的坐标、旋转,都是Vector3表示
transform.position = new Vector3(0, 1.0f, 0); //指定位置
transform.eulerAngles = new Vector3(0, 0, 90f); //指定角度
Euler Angle 为欧拉角,即用直观的角度来表示旋转
transform.rotation 是用Vector4表示旋转,较为复杂
2. 世界坐标、本地坐标
世界坐标: World Space Position,以世界的坐标系计算
本地坐标: Local Space Position,以父节点的坐标系计算
transform.localEulerAngles = new Vector3(0, 0, 180);//相对角度
transform.localPosition = new Vector3(0, -2f, 0); //相对位置
诸如子弹相对飞机运动,可以用本地坐标设置子弹的位置
二、物体的运动
transform.Translate(dx, dy, dz) 用于实现运动
- 基于自身方向移动
transform.Translate(0, 0.02f, 0, Space.Self); //移动基于自身的坐标系
- 基于世界方向移动
transform.Translate(0, 0.02f, 0, Space.World); //移动基于世界的坐标系
- 匀速移动
由于Update()是每次刷新调用一次,而每帧的间隔时间不同,因此上述运动的速度是变化的。在类中添加 speed 属性作为移动的速度,设置权限为 public 则可以在Unity中改变速度动态调试。Time.deltaTime 是每帧的间隔时间,用速度×时间作为移动距离,从而使速度保持一致。
//写在类中
--------------