Unity Awake() OnEnable() Start()三个函数理解

一.假如把Unity运行的任务作为一场不限人数的篮球比赛来看的话,挂该脚本的物体假设为一个球队,它的脚本为队员,所以当前脚本其实为一个队员,那 Awake() OnEnable() Start()就对应上场前对应该球队的分配.

状态:1.队伍不参赛(SetActive(false)/activeSelf==false),即挂该脚本的物体不出现在场景中.

        2.某个队员不上场(enabled==false),即该脚本组件不执行,此时脚本中的Update函数不再执行.

        Active是对应物体;Enable对应组件,包括脚本.

(备注:缺席状态(SetActive(false)/activeSelf==false),不能直接用find搜索到,可以用标签搜索)

二.所以 Awake() OnEnable() Start()的执行时机为:

1.Awake:

条件:挂脚本的物体为activeSelf==true状态时调用,脚本的enabled==false时也执行.

次数:在物体activeSelf由false变为true时执行一次.

2.OnEnable:

条件:物体的activeSelf==true&&脚本的enabled==true状态时调用.

次数:两个状态,由至少有一个是false,变为双true,就会执行一次,所以可以多次执行.

3.Start:

条件:activeSelf==true&&脚本的enabled==true状态时调用.

次数:在Update第一次更新前,即enabled第一次为true时执行一次.

三.执行顺序

Awake->OnEnable->Start->Update,OnEnable也可能在Update后再次执行.

 

(参考文章链接:https://blog.csdn.net/qq_28849871/article/details/78137261)

 

 

你可能感兴趣的:(Unity)