1、让游戏对象绕 X 轴顺时针旋转 50°
void Update(){
this.transform.Rotate(50, 0, 0);
}
2、实现游戏对象 每帧 先前移动 1 个单位
void Update(){
this.transform.Translate(0, 0, 1);
}
用于旋转的 Rotate 方法和用于移动的 Translate 方法都有 4 个参数的重载形式。前三个分别代表 X Y Z 轴,第四个参数为 Space 枚举类型,如果设置为 Space.Self 变换被应用相对于自身轴;如果设置为 Space.World 变换被应用相对于世界坐标系统。如果不设置第四个参数,则默认设置为 Space.self。
void Update(){
this.transform.Rotate(5, 0, 0, Space.World);
this.transform.Translate(5, 0, 0, Space.Self);
}
3、记录时间
Time类中比较重要的变量为 deltaTime(只读),指从最近一次调用 Update 或者 FixedUpdate 方法到现在的时间。如果想均匀地旋转一个物体,不考虑帧速率的情况下,可以乘以 Time.deltaTime.
void Update(){
this.transform.Rotate(5*Time.deltaTime, 0, 0); // 绕 X 轴均匀旋转
this.transform.Translate(5*Time.deltaTime, 0, 0); // 绕 X 轴均匀平移
}
如果想每秒增加或减少一个值,需要乘以 Time.deltaTime,同时也要明确在游戏中是需要每秒 1 个单位还是 帧 1 个单位的效果。如果是乘以 Time.deltaTime,那么,游戏对象就会按固定的节奏运动而不是依赖游戏的帧速率。
让游戏对象沿 X 轴正方向每秒平移 1 个单位
public GameObject gameObject; // 声明一个游戏对象
void Update(){
Vector3 te = gameObject..transform.position; // 获取游戏对象的位置坐标
te.y += 1 * Time.deltaTime; // 沿 X 轴每秒平移 1 个单位
gameObject.transform.position = te; // 设置游戏对象的位置坐标
}
自学都是从书中(Unity5.X 3D 游戏开发技术详解与典型案例)来。理解有误!请与我交流。