最近实验室有AR的项目,需要用Unity进行开发,一边学习一边把知识总结下来。在开始项目之前讨论过项目的技术方案,用Unity开发还是用Unreal开发,本人在两种游戏引擎上都有过初步的接触,认为Unreal作为后起之秀确实在某种程度上强于Unity,比如软件的设计、画面逼真程度,但作为一名程序员,实在对蓝图编程无感,对代码更加放心,还是更喜欢Unity的编程风格,因此选择了Unity,开始了漫长的Unity学习之路,学习资料是《Unity 5.X 3D游戏开发技术详解与典型案例》,欢迎交流。
一、Unity脚本概述
Unity脚本继承自MonBehaviour类,类中定义了各种回调方法,如Start、Update和FixedUpdate。
public class NewBehaviourScript: MonoBehaviour{...}
开发脚本时,主要时继承MonoBehaviour类并重写其中特定的方法。
Start方法:游戏场景加载时被调用,在该方法可以写一些游戏场景初始化的代码。
Update方法:在每一帧渲染之前被调用,大部分游戏代码在这里执行,除了物理部分的代码。
FixedUpdate方法:在固定的物理时间步调调用一次,基本物理行为代码执行的地方,如刚体Rigidbody,其中代码的执行和游戏的帧速率无关。
需要注意的是,1.在创建脚本时,类名字必须匹配文件名。2.类中的成员变量可以时private、protected和public,如果想在属性查看器中显示,其必须是public类型的。3.尽量避免在类中使用构造函数。
二、Unity脚本的基础语法
1.常用操作
Unity中很多对游戏对象的操作都是在脚本中修改对象的Transform(变换属性)与Rigidbody(刚体属性)参数来实现的。
让物体绕x轴旋转20°和让物体向前移动1个单位长度:
this.transform.Rotate(20,0,0); //绕x轴旋转20°
this.transform.Translate(0,0,