unity3d问题集 <4> 在inspector检测面板中的static选项有什么用? ...
热度 2248 2015-3-2 20:09 |个人分类:unity3D问题集| inspector, 游戏开发, 手机游戏, 检测, 动态
首先,每一个GameObject都可以标记成静态的或非静态(动态)的;
默认情况下是不勾选static的(static:静态)
那么标记为静态的又有什么用呢?
我们知道在游戏开发,尤其是手机游戏,在节省资源,优化性能方面是很重要的,游戏的大小和流畅度是必须考虑的。
而标记为static后,可以优化效率,使游戏更加流畅。(使用界面勾选Static选项的时候激活所有子物体都选择静态属性)
Static属性展开后可以看到
这里面每一种静态选项背后都包含一种技术,比如Lightmap Static,用于生成光照贴图对场景进行优化。还有Occluder Static与Occludee Static,是关于unity3d中与遮挡剔除技术有关的,Navigation Static是生成导航网格用的。(在烘焙导航地面时,通常会用到该static)
网上有很多关于NavMeshAgent的自动寻路的文章,建议去看一看。
上面说到static勾选可以提高游戏效率,那么我们所有物体都勾选static不就更节约了吗?当然不是。
所谓静态就是静止的,如果要改变了它的位置,就不是静态的了,静态物体在脚本加载的时候就开始渲染,不随着update 每帧更新,如果要移动物体,就必然要重新刷新,就是动态的了 ,即使你把移动的物体勾选了static,draw calls 也并不会减少,并且效率和原先的一样没有得到优化。
所以通常一直静止的游戏物体,才会勾选static,比如有些游戏场景是不动的,而游戏场景又很占资源,这个时候就可以勾选static了。
提到draw calls在Game界面里的stats(统计)可以查看到。
写文章不易,转载请注明出处【Sugar丿miss丶QAQ】http://www.unitymanual.com/blog-42778.html