Unity生命周期方法
Reset(Editor)
Reset是在用户点击检视面板的Reset按钮或者首次添加该组件时被调用。此函数只在编辑模式下被调用。Reset最常用于在检视面板中给定一个最常用的默认值
Awake(唤醒)
当一个脚本实例被载入且 Active 为 true 时 Awake 会被调用,一个非激活状态的预制件 Instantiate 的时候不会调用 Awake ,在首次调用 SetActive(true) 时会且只会调用一次,也就是说同一个 GameObject 的 Awake 函数只会被调用一次。由于其调用顺序早于 Start,所以 Awake 常用于在游戏开始之前初始化变量或游戏状态,可以判断当满足条件后执行此脚本(只调用一次)
注意:如果是在 Update 中调用的 SetActive(true) ,Awake 函数会立即被调用,而 Start 函数是在下一帧才调用的
OnEnable(当可用)
当对象变为可用或激活状态时此函数被调用(可多次调用)
Start(开始)
物体载入且脚本对象启用时被调用1次,常用于数据或逻辑对象初始化(只调用一次)
Start仅在Update函数第一次被调用前调用,且只会在脚本实例启用时被调用一次
Awake总是在Start之前执行。可以按需调整延迟初始化代码。其次,如果对象不是处于激活状态,start是不会被调用的,Awake无论是不是激活都会被引用
FixedUpdate
所有的物理行为的每帧更新新的逻辑都应当放在这里面,因为这个是固定间隔的帧执行的,而普通的Update每一帧之间的间隔是不一样的,所以这个可以使施加在物体上的力是均匀的,不然就会出现卡顿的情况
Update
每一帧进行调用,是实现游戏逻辑的主要办法
LateUpdate
在所有Update方法执行之后执行,一般用于摄像机的跟随移动
OnEnable与OnDisable
在对象被取消活跃状态的时候响应,和OnEnable相对应,但与此同时对象再次被激活的时候,OnEnable也会再次响应。
这两个一般配套使用,我目前一般是用于事件的加减方法
OnDestory
在对象被销毁的时候调用,但是如果一开始对象就处于不激活状态然后被销毁了,就不会调用这个函数
还有更多的可以去Unity官方手册了解:https://docs.unity3d.com/cn/current/Manual/UnityManual.html