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)

 

 

  • 6
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值