Unity Pitfall 汇总

1、 当脚本被绑定到一个对象时,一个类对象即会被创建,此意味着此类构造函数会被调用。所以在构造函数中不要调用任何运行时才创建的类。相应的初始化方代码应该移至Start方法中。

2、需使用UNITY_EDITOR宏来避免在编辑器中调用构造函数。

  

3、Start()的调用顺序不确定,以下代码,并不能保证EventCenterService.Start方法在DataCenterService.Start前被调用。

  

4、GetComponentInChildren。

  Returns the component of Type type in the GameObject or any of its children using depth first search.

  Only active components are returned.

  会找当前GO,如果当前GO找不到,则DFS查找子结点,只有activeInHierarchy的对象的component才会返回,这点要特别当心。

5、在Prefab中设置的public字段,无法在构造函数中引用。通过prefab设置的public字段,只能在start方法开始后引用,否则取不到prefab中的值。

6、FastBloom 组件在 Adreno320下会引起 Crash。

7、error x5204。此为Shader错误,若有if语句,可尝试加上/删除else,看看是否能解决此错误。

8、如果prefab有enum的公开属性,则enum只能在末尾添加新数值,而不能在中间插入,因为Unity的prefab保存的是int,而不是真的enum值。在中间插入的话,会导致所有的enum值错乱。

9、prefab中若引用代码,则该代码文件的meta文件必须一起提交,否则会出现丢失脚本的问题。

10、若只想修改子结点相对于父结点的position、rotation,请用localPosition、localRotation来修改。

11、当协程遇上继承。在override方法中调用base的方法时,如果本身是个协程,则必须调用MoveNext方法。

12、GameComponent方法非常耗时,下图中,4次调用花费了9.28ms,MBP上环境下的数据。

  

13、将一对象A设置为DontDestroyOnLoad,若其父对象B没有此设置,则A一样会在切Scene时被移除,因为A的父对象B会被移除。

14、NGUI中ttf字体必须使用keep crisp选项才能强制不自动换行。

15、ios/mac下,图片如何会糊,就必须使用ARGB32,即不压缩图片的处理方法。

16、Application.LoadLevel。

  若连调三次 Application.LoadLevel,则UnityEngine会在后序,每帧依次执行一次清空+OnApplicationLevelLoaded.

Unity Pitfall 汇总的更多相关文章

  1. 2019年Unity学习资源指南[精心整理]

    前言 进入一个领域,最直接有效的方法就是,寻找相关综述性文章,首先你需要对你入门的领域有个概括性的了解,这些包括: 1.主流的学习社区与网站. 2.该领域的知名大牛与热心分享的从业者. 3.如何有效的 ...

  2. unity学习网站汇总

    由于最近要学习unity3d 开发,把自己找来的资料汇总下 unity3D官方学习资源:https://www.assetstore.unity3d.com/ unity3D API查询网站:http ...

  3. [官方教程] Unity 5 BLACKSMITH深度分享 - 汇总帖

    BLACKSMITH深度分享系列 相信此大片在Unite上的惊艳亮相,让许多人至今无法忘却它所带来的震撼,Unity的大师们为了让更多Unity开发者了解此大片是如何用Unity5诞生的,深度分享了多 ...

  4. Unity视频播放的各种实现方式汇总

    http://www.taidous.com/bbs/article-860-1.html  Unity视频播放有很多种实现方式,可根据要求来选择适当的实现,这里总结一下: 1. MovieTextu ...

  5. Unity热更方案汇总

    http://www.manew.com/thread-114496-1-1.html   谈到目前的代码热更方案:没什么特别的要求   <ignore_js_op>    toLua(效 ...

  6. 汇总:unity中弹道计算和击中移动目标计算方法

    http://download.jikexueyuan.com/detail/id/432.html 弹道计算是游戏里常见的问题,其中关于击中移动目标的自动计算提前量的话题,看似简单,其实还是挺复杂的 ...

  7. unity一些操作汇总

    设置父物体高度自适应子物体:父物体添加ContentSizeFitter,设置Horizeontal Fit和Vertical Fit为Preferred Size. ScrollView设置Cone ...

  8. Unity打包安卓项目问题汇总(持续更新)

    1.V1,v2签名问题 安卓11以上--v1签名无法使用: 安卓7以下--v2无法使用: 应用宝不支持没有v1签名的包: AndroidStudio版本2020打签名包时无法勾选v1,v2选项,4.2 ...

  9. ASP.NET MVC4入门到精通系列目录汇总

    序言 最近公司在招.NET程序员,我发现好多来公司面试的.NET程序员居然都没有 ASP.NET MVC项目经验,其中包括一些工作4.5年了,甚至8年10年的,许多人给我的感觉是:工作了4.5年,We ...

随机推荐

  1. LeetCode Best Time to Buy and Sell Stock with Transaction Fee

    原题链接在这里:https://leetcode.com/problems/best-time-to-buy-and-sell-stock-with-transaction-fee/descripti ...

  2. Spring boot admin 使用

    1. maven依赖 <dependencies> <dependency> <groupId>org.springframework.boot</group ...

  3. Redis事务及锁应用

    Redis只支持简单的事务,不像mysql那样比较完整严格,对数据的完整性也维持的很好.redis的开启事务实际上只是将开启事务之后的一段命令用队列包裹起来了,当调用redis的执行命令(exec)全 ...

  4. docker怎么破?

    为什么要装docker? 因为linux服务器不好用,很多操作不好进行,比如安装包没有管理员权限 docker可以访问本地显卡,比一般的virtual box 或者VMware都要好 怎么装docke ...

  5. Warning: skipping non-radio button in group. 的处理

    1)把你的第一个Radio选中group属性: 2)把你“这个组中”的最后一个Raido控件“后”的一个控件(指得是控件添加先后的顺序,可以用ctrl+d来修改顺序)也选中group属性,如最后一个R ...

  6. FPGA图像加速解决方案来了

    近日,百度云与联捷计算科技(CTAccel)共同推出基于FPGA的图像加速解决方案(CIP,CTAccel Image Processor),实现对JPEG转码JPEG.JPEG转码WebP(M6)等 ...

  7. 关于不同应用程序存储IO类型的描述

    介绍 存储系统作为数据的载体,为前端的服务器和应用程序提供读写服务.存储阵列某种意义上来说,是对应用服务器提供数据服务的后端“服务器”.应用服务器对存 储系统发送数据的“读”和“写”的请求.然而,不同 ...

  8. mac下的安装神奇 brew --例子 安装 mysql

    da打开终端 输入bre 输入 bre search mysql (查找mysql版本) 输入 bre install mysql@5.6(选择mysql版本安装)

  9. Mysql auto_increment总结

    一.为什么InnoDB表要建议用自增列做主键 我们先了解下InnoDB引擎表的一些关键特征: InnoDB引擎表是基于B+树的索引组织表(IOT): 每个表都需要有一个聚集索引(clustered i ...

  10. python调试方法

    之前调试python程序都是用print参数,感觉有点弱爆啊,最近发现python也有类似C语言gdb的工具pdb,记录下pdb的使用方法和心得. 先找了段简单的测试程序: 复制代码 !/usr/bi ...