在unity中所有的脚本都继承MonoBehaviour这个类
unity中有Awake, OnEnable, Start, FixedUpdate, Update, LateUpdate, OnGUI, OnDisable, OnDestroy这几个方法
Awake: 可以理解为类中的构造函数,脚本被载入后自动调用,相当于初始化
OnEnable:对象变成可用或激活状态时调用
Start:如果执行过,则不执行,没执行过执行
FixedUpdate:固定时间或者指令数必定执行
Update:在不确定的时间进行更新,与硬件配置相关
LateUpdate:在update之后进行更新
OnGUI:处理渲染和处理GUI事件
OnDisable:当前对象不可用或非激活状态时被调用
OnDestroy:被销毁的时候调用
Awake()->OnEnable()->Start()->FixUpdate()->Update()->LateUpdate()->OnGUI()->OnDisable()->OnDestroy()->OnApplicartionQuit();
作用分别为:
在MonoBehavior创建后的第一时间调用,只执行一次
在游戏对象被启用的时候调用
用于时间间隔相同的逻辑处理 每帧调用一次(物理操作,物理计算)
用于游戏基本的逻辑处理 每帧调用一次
用于游戏的渲染或相机操作的处理 每帧调用一次,在Update执行
在每帧更新是调用多次,多用于绘制界面,现在更多的被U/NGUI
禁用游戏物体时执行
当销毁游戏物体时执行,只执行一次
- OnPreCull:在相机剔除场景之前调用此函数。相机可见的对象取决于剔除.OnPreCull函数调用发生在剔除之前。
- OnBecameVisible / OnBecameInvisible:在对象对于相机可见/不可见时调用此函数。
- OnWillRenderObject:如果对象可见,则为每个相机调用一次此函数。
- OnPreRender:在相机开始渲染场景之前调用此函数。
- OnRenderObject:在完成所有常规场景渲染后调用此函数。此时,可使用GL类或Graphics.DrawMeshNow绘制自定义几何图形。
- OnPostRender:在相机完成场景渲染后调用此函数。
- OnRenderImage(仅限专业版):在完成场景渲染后调用此函数,以便对屏幕图像进行后处理。
- OnGUI:在每帧上多次调用此函数,以响应GUI事件。程序首先将处理Layout和Repaint事件,然后再处理每个输入事件的Layout和keyboard /鼠标事件。
- OnDrawGizmos用于在场景视图中绘制小图示(Gizmos),以实现可视化目的