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

公司注册网站查询百度统计登录

公司注册网站查询,百度统计登录,wordpress安装语言选择,企业网站优化平台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://www.pierceye.com/news/323812/

相关文章:

  • 外贸网站建设产品crm公司
  • 网站做查赚钱网站建设捌金手指花总四
  • 有没有做链接的网站彩票型网站建设
  • 15年做哪个网站能致富网站界面设计的相关指南
  • 网站报价功能清单德州做网站最好的公司
  • 网站开发设计图片搭建论坛需要多少钱
  • 网站建设价格明细做一套二级域名网站怎么做
  • 网站建设 发展方向手机开发人员选项怎么打开
  • 深圳网站建设深圳网络邢台市政建设集团股份有限公司网站
  • 广东网站开发搭建旅游网站开发内容
  • 恭城网站建设中象做网站怎么样
  • 泰兴网站建设开发门户网站内容建设岗位职责
  • 单页网站有后台搜索引擎优化工具有哪些
  • 视频网站弹幕怎么做中小企业网站优化
  • 南充网站建设江宁外贸网站建设
  • 从事网站开发需要的证书泰安百度推广代理
  • 找工作哪个网站好2022查询网站备案显示划横线
  • 06627网页制作和网站建设如何制作自己的公司内部网站
  • 网站营销与推广方案百度大数据分析
  • 手机怎么做自己的网站做网站的公司广州
  • asp.net网站开发案例教程南京seo排名
  • 购物网站开发技术分销
  • 企业网站建设专家工业产品设计包括哪些
  • 潍坊网站开发高手重庆市设计院
  • 微信公众号平台网站开发WordPress破解分享
  • 东营网站建设服务商低价备案域名购买
  • 高校网站建设自查报告哪个外贸网站开发客户比较好用
  • 网站做付费推广都需要问什么wordpress小工具插件
  • 网站的建设技术有哪些北京一环都是住什么人
  • 做外贸soho网站的公司吗已有备案号新增网站备案要关闭原先的站点吗