Unity细节基础(二)脚本生命周期常用详解

第一个疑惑:Awake与Start的区别

(1)Awake是在所有实例被加载后,当脚本所挂载的实例的Active第一次为true时调用。也就是说,当脚本挂载的这个实例第一次在场景中被使用或展示。与脚本的实例是否被允许使用无关(onEnable == true)无关。

(2)Start函数在OnEnable函数之后运行,OnEnable是允许脚本执行,start函数只执行一次,相当于是说,Start函数是在脚本第一次被允许执行后执行。

(3)Awake函数,与Start函数当场景重新加载时都会重新执行,并遵循上述规则。

 

(4)

第一阶段:初始化阶段---------------------------------1

1.Awake()

2.OnEnable

3.Start

第二阶段:物理循环--------------------------------------------2

1.FixedUpdate:物理循环操作添加在这个函数里

2.yield WaitForFixedUpdate 携程中的物理操作

是0.02秒跑一次,可能会比其他的快或慢

3.OnTriggerEnter/Stay/Exit

4.OnCllisionEnter/Stay/Exit

第三阶段:鼠标信息输入-------------------------------------------3

OnMouse+?

第四阶段:游戏逻辑循环——一帧跑一次----------------------4

Updata

yiled null

yield WaitForSeconds

yield WWW(http 旧的API)

yield StartCoroutine

 

LateUpdata(相机操作适合)

第五阶段:SceneRender

OnPreCull(摄像机脚本挂载,某渲染被剔除)

--其他的在图中有

第六阶段:小组件的渲染

OnDrawGizmos

第七阶段:ui渲染-----------------------------------------5

OnGui

第八阶段:帧结束-----------------------------------------6

yield WaitForEndOfFrame

第九节段:游戏暂停或退出

OnApplicationPause

第十阶段:脚本不允许执行----------------------------------------7

OnDisable

第十一阶段:挂载对象删除,游戏结束--------------------------8

OnDestroy

OnApplicationQuit

 

 

 

 

 

 

 

 

 

其他的看图就可以了看下面两个摘抄自其它博主很直观。(仅仅作为个人笔记使用,如有不妥告知立即删除)

Unity细节基础(二)脚本生命周期常用详解