当前位置: 首页 > news >正文

北京房产网二手房出售郑州网站优化培训机构

北京房产网二手房出售,郑州网站优化培训机构,重庆seo杨洋,怎么做直播网站刷弹幕http://www.xuanyusong.com/archives/2378 Unity是不支持多线程的#xff0c;也就是说我们必须要在主线程中操作它#xff0c;可是Unity可以同时创建很多脚本#xff0c;并且可以分别绑定在不同的游戏对象身上#xff0c;他们各自都在执行自己的生命周期感觉像是多线程也就是说我们必须要在主线程中操作它可是Unity可以同时创建很多脚本并且可以分别绑定在不同的游戏对象身上他们各自都在执行自己的生命周期感觉像是多线程并行执行脚本的它是如何执行的呢 我们做一个小小的实验来验证它。如下图所示在Hierarchy视图中创建三个游戏对象在Project视图中创建三条脚本然后按照顺序将脚本绑定在对应的游戏对象身上。 三条脚本的代码完全一样只是做了一点名称上的区分代码写的比较丑我们只是作为测试 view source 01using UnityEngine; 02using System.Collections; 03  04public class Script0 : MonoBehaviour 05{ 06  07    void Awake () 08    { 09        Debug.Log(Script0 Awake); 10    } 11  12    bool isUpdate false; 13    void Update () 14    { 15        if(!isUpdate) 16        { 17            Debug.Log(Script0 Update); 18            isUpdate true; 19        } 20    } 21  22    bool isLateUpdate false; 23    void LateUpdate() 24    { 25        if(!isLateUpdate) 26        { 27            Debug.Log(Script0 LateUpdate); 28            isLateUpdate true; 29        } 30    } 31}  播放游戏看看他们的执行顺序。如下图所示Awake、Update、LateUpdate、无论播放游戏多少次他们执行的顺序是完全一样的。     接着我们在做一个测试把Script0的Update方法注释掉 view source 01using UnityEngine; 02using System.Collections; 03  04public class Script0 : MonoBehaviour 05{ 06  07    void Awake () 08    { 09        Debug.Log(Script0 Awake); 10    } 11  12//  bool isUpdate false; 13//  void Update () 14//  { 15//      if(!isUpdate) 16//      { 17//          Debug.Log(Script0 Update); 18//          isUpdate true; 19//      } 20//  } 21  22    bool isLateUpdate false; 23    void LateUpdate() 24    { 25        if(!isLateUpdate) 26        { 27            Debug.Log(Script0 LateUpdate); 28            isLateUpdate true; 29        } 30    } 31}  播放游戏在看看它的结果。脚本的执行顺序和以前完全一样Script0即使删除掉了Update方法但是它也不会直接执行LateUpdate方法而是等待Script1和Script2的Update方法都执行完毕以后在去执行所有的LateUpdate方法。     通过这两个例子我们就可以清楚的断定Unity后台是如何执行脚本的了。每个脚本的Awake、Update、LateUpdate、FixedUpdate等等方法在后台都有一个总汇。 后台的Awake() {        脚本0中的Awake();        脚本1中的Awake()        脚本2中的Awake(); }        后台的方法 Awake、Update、LateUpdate、FixedUpdate等等都是按照顺序等所有子脚本中的Awake执行完毕后在去执行 Start 、Update、LateUpdate等等。所以这里也就解释了Unity没有多线程的概念。 后台的Update() {        脚本0中的Update();        脚本1中的Update()        脚本2中的Update(); } Unity还提供的一组协同任务的方法其实它的原理和上面的完全一样它们都是假的多线程。说了一圈我们又回到了Unity脚本的执行顺序上来我们在看两条脚本 在脚本2的Awake方法中创建一个立方体对象。 view source 01using UnityEngine; 02using System.Collections; 03  04public class Script2 : MonoBehaviour 05{ 06    void Awake () 07    { 08        GameObject.CreatePrimitive(PrimitiveType.Cube); 09    } 10} 在脚本0的Awake方法中去获取这个立方体对象  view source 01using UnityEngine; 02using System.Collections; 03  04public class Script0 : MonoBehaviour 05{ 06  07    void Awake () 08    { 09        GameObject go GameObject.Find(Cube); 10        Debug.Log(go.name); 11    } 12  13}             如果脚本的执行顺序是 先执行Script2 然后在执行Script0那么Script0中的Awake就可以获取到该立方体对象可是如果脚本的执行顺序是先Script0然后在Script2那么Script0肯定会报空指针错误的。           那么实际项目中的脚本会非常非常多他们的先后顺序我们谁也不知道。所以我的建议一般在Awake方法中创建游戏对象或在Resources.Load(Prefab) 对象。在Start方法中去获取游戏对象或者游戏组件这样就可以确保万无一失了。      如果说你非要控制脚本的执行先后顺序也不是完全不行Unity可以设置脚本执行的顺序。如下图所示选择任意脚本在Inspector视图中点击Execution Order..按钮。 如下图所示点击右下角的“”将弹出下拉窗口包括游戏中的所有脚本。添加脚本完毕后Default Time下方数值越小的排在越前面脚本将率先执行如果没有设置的脚本将按默认的顺序执行。   按照我的这个设置程序将先执行Script0然后Script1最后Script2欢迎一起讨论哇咔咔。。转载于:https://www.cnblogs.com/hisiqi/p/3204870.html
http://wiki.neutronadmin.com/news/414870/

相关文章:

  • 番禺响应式网站开发wordpress 如何编辑页面
  • 淘宝联盟推广做网站违法app开发定制公司哪家
  • 在线网站建设教程网页小程序开发
  • 宁夏省住房城乡建设厅网站湖北建设工程信息网
  • 北京市建设网站20最快的加载wordpress主题
  • 网站建设需要的职位软件开发培训机构加盟
  • 游戏类网站怎么做项目管理软件 project教程
  • js面向对象网站开发快速优化seo软件
  • 做外单网站有哪些做网站logo的网站
  • app产品网站建设网站建设技术氵金手指排名26
  • 长沙3合1网站建设公司表白网站制作生成器
  • 做机械设计的要知道哪些网站项目管理软件免费
  • 丰台网站制作浩森宇特大型图片库网站建设
  • 餐饮网站系统wordpress 调用标签云
  • pw网站更换域名一般使用的分辨率显示密度是
  • 做网站比较好的公司徐州网站制作系统
  • 玉泉路做网站淘宝客网站一定要备案
  • 北京网站制作官网苏州网络销售公司
  • 外贸做零售的网站郑州企业
  • 事业单位门户网站建设包含内容会议专题网站建设报价单
  • 郑州优化网站公司南宁哪里有网站建设培训班
  • 什么是网站单页手机版景区网站
  • 如何给网站做下载附件公司 网站 源码
  • 找人做网站要拿到源代码吗南通网站建设推广专家
  • 福州网站设计十年乐云seo塑胶科技东莞网站建设
  • 域名换了网站需要备案么中企动力和东莞朝阳做的网站对比
  • 哪个公司做网站正规营销型网站定制
  • 共享备案网站个人网页需要什么内容
  • 建设网站和网页有啥区别产品设计培训
  • nat123做视频网站wordpress换行符