zoukankan      html  css  js  c++  java
  • Unity Pitfall 汇总

    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.

  • 相关阅读:
    Django-website 程序案例系列-3 URL详解
    Django-website 程序案例系列-1 最简单的web服务器
    c# 多维数组、交错数组(转化为DataTable)
    c++(重载等号=操作为深拷贝)
    c# 导入c++ dll
    Nhibernate HQL 匿名类(严格说是map的使用以及构造函数的使用
    spring.net 集成nhibernate配置文件(这里暴露了GetCurrentSession 对于 CurrentSession unbond thread这里给出了解决方法)
    hibernate mapping文件中 xmlns会导致linq to xml 查询不到对应的节点
    linq to xml
    xml 操作(动态添加 property属性 其他节点同理)
  • 原文地址:https://www.cnblogs.com/tekkaman/p/3844684.html
Copyright © 2011-2022 走看看