今天继续学习了Unity3d中有关脚本生命周期的知识,即脚本中的 常见方法在游戏运行过程中的执行顺序 和每一个脚本中的函数常用的功能。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class dzzhyk : MonoBehaviour {
// 这些方法都不是 MonoBehaviour 中定义的方法,而是通过反射调用的一些事件
//这些方法定义了一个脚本从被加载到被销毁的过程中
//脚本的声明周期
//每当脚本被加载时调用Awake,经常在Awake中进行初始化操作-公有字段public
private void Awake()
{
print("Awake");
}
// 每次 激活脚本时调用OnEnable - 可以用来重置
private void OnEnable()
{
print("OnEnable");
}
//在第一次调用Update之前调用一次Start
//在 Start 中做一些初始化操作,一般是私有字段private
void Start()
{
print("Start");
}
//如果脚本处于调用状态,则Update、LateUpdate两项一直在循环,次数相同
//每帧调用一次 Update - 刷新角色等
void Update()
{
print("Update");
}
//在 Update 方法调完之后调用,用于刷新逻辑操作等
private void LateUpdate()
{
print("LateUpdate");
}
//取消激活状态后调用
private void OnDisable()
{
print("OnDisable");
}
//被销毁时调用一次 - 生成掉落
private void OnDestroy()
{
print("OnDestroy");
}
//脚本只要处于激活状态则一直调用 - IMGUI代码需要卸载OnGUI方法中,现在常用UGUI
//刷新次数要高
private void OnGUI()
{
print("OnGUI");
}
// 以固定的频率调用,不会受到图像刷新帧速率影响
//一般会把处理物理的代码放在 FixedUpdate 中
private void FixedUpdate()
{
print("FixedUpdate");
}
}
在实际运行的过程中,脚本中函数的运行顺序为:
可以总结出脚本中各方法的生命周期为: