必然事件是从MonoBehaviour继承而来,就是MonoBehaviour的生命周期,这里将学习生命周期所提供的事件函数的使用方法。Unity常用函数执行的优先序如下:
Awake() → OnEnable() → Start() → Update() → LateUpdate() → OnDisable() → Destroy()
- Awake函数
Awake()函数是加载场景时运行,就是说在游戏开始之前初始化变量或游戏状态。
例如:
private GameObject person;
void Awake()
{
person = GameObject.Find("Teacher");
}
2. Start函数
Start()函数是在第一次启动时执行,用于游戏对象的初始化,在Awake()函数之后。
例如:
float price;
void Start()
{
price = 5.00f;
}
3.Update函数
Update()是在运行时每一帧必执行的函数,用于更新游戏场景和状态。
例如:
void Update()
{
transform.Rotate(0,0,1);
}
将保存后的脚本附到Cube物体,运行的时候,发现Cube一直不停地旋转。
从以上例子看出,在这个函数中放置的代码都会在每帧调用。
4. FixedUpdate函数
FixedUpdate()与 Update ()函数相似,但是每个固定物理时间间隔调用一次,用于物理状态的更新。
5. LateUpdate 函数
LateUpdate ()是在Update()函数执行后再次执行。
例如:
void LateUpdate ()
{
transform.Translate(0,0,Time.deltaTime);
}
Awake()和Start()的区别
我们先写下面的脚本,例如:
void Awake()
{
Debug.Log("Awake");
}
void Start()
{
Debug.Log("Start");
}
从执行结果上看
Awake()比Start()执行早,下面我们把Test去勾并运行
从结果上看
无论打勾还是去勾,总要执行Awake()函数