awake()和start()还有update(),fixedupdate()的差别

awake()和start()还有update(),fixedupdate()的差别

1.首先看一下untiy官方对awake()和start()的定义

awake()和start()函数会在脚本加载后自动调用,awake()会先被调用,即使脚本未被调用。最好用来设置脚本之间的引用和初始化。

而start()在awake()之后调用,在第一次调用update()之前,但必须是脚本已经被启用的情况下,也就是说start()中写脚本启用后需要执行的操作,你也可以把一些初始化代码放在这里。

举个栗子,比如一个敌人进入场景,你可以用awake()设置子弹数量,然后在start()中启用敌人的射击功能,也就是在脚本启用后。(注:start和awake只能在脚本生命周期中调用一次)

总结:所以在进入脚本前我们可以用awake()函数进行初始化,这样就不用在脚本中进行分别设置了,而start()方法用于脚本开始执行时需要的功能。

2.关于update()和fixedup()的区别

update()应该是unity中最常用的函数,使用这个函数的脚本每一帧都会自动调用,大部分需要周期性改变的内容都放置在这个函数中,非物理对象的移动,计时器,输入检测,通常都放在update()中,注意update()并不根据正常的时间轴调用,如果某一帧使用的时间大于下一帧,那么每帧调用的间隔将不同,update()和fixedupdate()不同,但是有几个重要的区别,fixedupdate()根据正常的时间轴调用,且每次调用的间隔都是相同的,在调用fixedupdate()函数之后会进行需要的物理计算,比如有刚体的物理对象,需要放在fixedupdate()中,fixedupdate()常用于移动物理对象。

上一篇:BZOJ2178 圆的面积并 计算几何 辛普森积分


下一篇:The eventual following stack trace is caused by an error thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access, and has no functional impact.