位置: 编程技术 - 正文
推荐整理分享Unity3d脚本执行顺序详解(unity3d脚本执行顺序),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:unity3d的脚本语言,unity常用的800个脚本,unity3d4个脚本,unity3d脚本编程,unity3d4个脚本,unity3d 脚本,unity3d脚本执行顺序,unity3d 脚本,内容如对您有帮助,希望把文章链接给更多的朋友!
欢迎来到unity学习、unity培训、unity企业培训教育专区,这里有很多U3D资源、U3D培训视频、U3D教程、U3D常见问题、U3D项目源码,我们致力于打造业内unity3d培训、学习第一品牌。
在调用脚本的时候遇到下面报错情况:
NullReferenceException: Object reference not set to an instance of an object
意思就是:未将对象引用设置到对象的实例脚本内部的 Start()函数并不能作为构造的形式,因为在同一个对象身上会出现 两个Start()无法同步的现象。例如在 A对象身上挂接 B和C两个脚本,B脚本的Start()函数调用C脚本,
此刻C脚本对象可能已经创建成功但是C脚本的Start()并不一定已经执行,
并不是像构造函数一样,如果对象创建成功那么构造函数一定执行完毕。
发布时期更容易凸显此问题,报错:此对象没有赋给物体。
A 单个脚本身上的顺序
所以就说下脚本的执行顺序机制吧
1 Awake() 脚本实例被载入时被调用,整个生命周期,只会执行一次2 Start()在Update()函数第一次调用前被调用,整个生命周期中只被调用一次3 Update() 在每一帧调用4 FixedUpdate() 放置游戏基本物理行为代码的地方,每一帧调用5 OnGUI() 每帧调用好几次(每个事件一次),GUI显示函数只能在OnGui中调用一般都是在Awake函数中创建游戏对象,然后在Start函数中获取游戏对象或游戏组件
在这其中还有其他的函数,暂时不多解释
B 多个脚本身上的顺序
但是这些函数是 连同 不同脚本先后执行把一个对象身上的脚本连起来好像一个链表链表1(A脚本 Awake(),B脚本 Awake()…)链表2(A脚本 Update(),B脚本 Update()…)
C 注意事项
脚本是按照添加顺序进行创建执行如果你的脚本先创建了,去GetComponent<另一个脚本>很显然这样会报错,说:NullReferenceException: Object reference not set to an instance of an object所以 要注意顺序。(这个很蛋疼的说)
D 强制修改脚本执行顺序
这么多脚本都考虑执行顺序很蛋疼,所以unity3d给予了一个可以强制设置脚本执行顺序的方法
修改方法如下:
Unity3d 版本4.6Edit—Projected Settings—Script Exectuion Order在右侧 Inspector 面板 有Default Time 设置 点击号来设置顺序
更多精彩请点击
Unity3D 错误nativeVideoFrameCallback的解决方法 欢迎来到unity学习、unity培训、unity企业培训教育专区,这里有很多U3D资源、U3D培训视频、U3D教程、U3D常见问题、U3D项目源码,我们致力于打造业内unity3d
Unity3D脚本(MonoBehaviour)生命周期分析 欢迎来到unity学习、unity培训、unity企业培训教育专区,这里有很多U3D资源、U3D培训视频、U3D教程、U3D常见问题、U3D项目源码,我们致力于打造业内unity3d
Unity3D 移动MM failed to find resource file{mmiap.xml}解 欢迎来到unity学习、unity培训、unity企业培训教育专区,这里有很多U3D资源、U3D培训视频、U3D教程、U3D常见问题、U3D项目源码,我们致力于打造业内unity3d
标签: unity3d脚本执行顺序
本文链接地址:https://www.jiuchutong.com/biancheng/372940.html 转载请保留说明!友情链接: 武汉网站建设