Unity 脚本中Start() 与 Awake()的区别
2017-02-08 19:49
302 查看
刚开始接触Unity时对脚本中的函数执行顺序不是很了解
Start()函数是在Update()函数第一次执行之前进行调用,它的执行条件是需要首先实例化对象之后该对象的start()才能够调用。
Awake()函数与Start()的机制差不多,同样是在游戏运行过程中只执行一次,但是Awake()是在游戏运行开始后系统自动调用,通常可以理解为Awake()比Start()先执行,但也不一定。自己理解的就是Awake()在没有实例化对象时,直接可以运行
Awake()多用于创建变量 Start()多用于给变量赋值
可以看一些Unity圣典的解释:
Awake()
当一个脚本实例被载入时Awake被调用。
Awake用于在游戏开始之前初始化变量或游戏状态。在脚本整个生命周期内它仅被调用一次.Awake在所有对象被初始化之后调用,所以你可以安全的与其他对象对话或用诸如 GameObject.FindWithTag 这样的函数搜索它们。每个游戏物体上的Awke以随机的顺序被调用。因此,你应该用Awake来设置脚本间的引用,并用Start来传递信息。Awake总是在Start之前被调用。它不能用来执行协同程序。
Start()
Start仅在Update函数第一次被调用前调用。Start在behaviour的生命周期中只被调用一次。它和Awake的不同是Start只在脚本实例被启用时调用。
你可以按需调整延迟初始化代码。Awake总是在Start之前执行。这允许你协调初始化顺序。
Start()函数是在Update()函数第一次执行之前进行调用,它的执行条件是需要首先实例化对象之后该对象的start()才能够调用。
Awake()函数与Start()的机制差不多,同样是在游戏运行过程中只执行一次,但是Awake()是在游戏运行开始后系统自动调用,通常可以理解为Awake()比Start()先执行,但也不一定。自己理解的就是Awake()在没有实例化对象时,直接可以运行
Awake()多用于创建变量 Start()多用于给变量赋值
可以看一些Unity圣典的解释:
Awake()
当一个脚本实例被载入时Awake被调用。
Awake用于在游戏开始之前初始化变量或游戏状态。在脚本整个生命周期内它仅被调用一次.Awake在所有对象被初始化之后调用,所以你可以安全的与其他对象对话或用诸如 GameObject.FindWithTag 这样的函数搜索它们。每个游戏物体上的Awke以随机的顺序被调用。因此,你应该用Awake来设置脚本间的引用,并用Start来传递信息。Awake总是在Start之前被调用。它不能用来执行协同程序。
Start()
Start仅在Update函数第一次被调用前调用。Start在behaviour的生命周期中只被调用一次。它和Awake的不同是Start只在脚本实例被启用时调用。
你可以按需调整延迟初始化代码。Awake总是在Start之前执行。这允许你协调初始化顺序。
相关文章推荐
- [Unity3D]脚本中Start()和Awake()的区别
- [Unity3D]脚本中Start()和Awake()的区别
- Unity初识之 start 和 awake 的区别
- [Unity3D]脚本中Start()和Awake()的区别
- Unity中Awake与Start函数的区别
- Unity中Awake和Start的区别
- UnityScript Awake()和Start()的小区别
- Unity3D脚本中Start()和Awake()的区别
- 【转】Unity3D脚本中Start()和Awake()的区别
- [Unity3D]脚本中Start()和Awake()的区别
- [Unity3D]脚本中Start()和Awake()的区别
- [Unity3D]脚本中Start()和Awake()的区别
- 脚本中Start()和Awake()的区别(比较全面的解释)
- 【Unity3D自学记录】脚本中Start()和Awake()的区别
- [Unity3D]脚本中Start()和Awake()的区别
- Unity3D脚本中的Awake()和Start()的本质区别
- Unity3D脚本中Start()和Awake()的区别
- 脚本中Start()和Awake()的区别
- Unity中Start和Awake方法的区别
- [Unity3D]脚本中Start()和Awake()的区别