备忘录-1.Unity3D的Awake()和Start()

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/asdfghj253/article/details/80936422

 Awake()

当一个脚本实例被载入时Awake被调用。

Awake用于在游戏开始之前初始化变量或游戏状态。在脚本整个生命周期内它仅被调用一次.Awake在所有对象被初始化之后调用,所以你可以安全的与其他对象对话或用诸如 GameObject.FindWithTag 这样的函数搜索它们。每个游戏物体上的Awke以随机的顺序被调用。因此,你应该用Awake来设置脚本间的引用,并用Start来传递信息。Awake总是在Start之前被调用。它不能用来执行协同程序。


Start()

Start仅在Update函数第一次被调用前调用。Start在behaviour的生命周期中只被调用一次。它和Awake的不同是Start只在脚本实例被启用时调用。
你可以按需调整延迟初始化代码。Awake总是在Start之前执行。这允许你协调初始化顺序。


自我理解: 

    Awake()是当有这个脚本出现时就执行

   Start()是当这脚本的Enable=true时才会执行

   也就是说如果脚本挂在一物体下,如果它是隐藏的那么它只会执行Awake()的初始化的内容,不会执行Start()

   所以Awake()优先于Start()执行

  而总体顺序是Awake()>Start()>Update()-帧率|| FxiedUpdate()-固定帧率>lateUpdate()

猜你喜欢

转载自blog.csdn.net/asdfghj253/article/details/80936422