首页 > 代码库 > Unity3D Script Execution Order ——Question
Unity3D Script Execution Order ——Question
我 知道 Monobehaviour 上的 那些 event functions 是 在主线程 中 按 顺序调用的。这点从Manual/ExecutionOrder.html 上的 一张图就可以看出来。
既然按 顺序 调用,那么 如果 比如update 在这一次 调用的 时候 执行 了 大量的运算 导致 主线程 被堵塞。是不是 意味着 这之后的 event funstion 也被堵塞了。
测试一下:
1 using UnityEngine; 2 using System.Collections; 3 4 public class mTest : MonoBehaviour { 5 6 //public GameObject tmp; 7 8 int index1 = 0; 9 void FixedUpdate()10 {11 Debug.Log(" mTest FixedUpdate " + Time.realtimeSinceStartup + " index1 : " + (index1++));12 }13 14 15 int index = 0;16 17 // Update is called once per frame18 void Update () {19 20 if (index == 0)21 {22 for (int i = 0; i < 1000; i++)23 {24 Debug.Log("nothing");25 }26 //Destroy(tmp);27 //Debug.Log("test");28 }29 Debug.Log(" mTest Update " + Time.realtimeSinceStartup + " index : " + (index++));30 }31 32 void LateUpdate()33 {34 Debug.Log(" mTest LateUpdate " + Time.realtimeSinceStartup);35 }36 }
上结果:
结果很奇怪,的确是堵塞了,但是FixUpdate 在 第 2 帧 被 执行多次。无语了。
Unity3D Script Execution Order ——Question
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。