基本常识

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 游戏开发技术详解与典型案例)来。理解有误!请与我交流。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容