static选项

在inspector检测面板中的static选项有什么用?

首先,每一个GameObject都可以标记成静态的或非静态(动态)的;

默认情况下是不勾选static的(static:静态)

那么标记为静态的又有什么用呢?

我们知道在游戏开发,尤其是手机游戏,在节省资源,优化性能方面是很重要的,游戏的大小和流畅度是必须考虑的。

而标记为static后,可以优化效率,使游戏更加流畅。(使用界面勾选Static选项的时候激活所有子物体都选择静态属性)

Static属性展开后可以看到

这里面每一种静态选项背后都包含一种技术,比如

  • Lightmap Static,用于生成光照贴图对场景进行优化。
  • Occluder Static与Occludee Static,是关于中与遮挡剔除技术有关的
  • Navigation Static是生成导航网格用的。(在烘焙导航地面时,通常会用到该static)
  • Batching Static 静态批处理

网上有很多关于NavMeshAgent的自动寻路的文章,建议去看一看。

上面说到static勾选可以提高游戏效率,那么我们所有物体都勾选static不就更节约了吗?当然不是。

所谓静态就是静止的,如果要改变了它的位置,就不是静态的了,静态物体在脚本加载的时候就开始渲染,不随着update 每帧更新,如果要移动物体,就必然要重新刷新,就是动态的了 ,即使你把移动的物体勾选了static,draw calls 也并不会减少,并且效率和原先的一样没有得到优化。

所以通常一直静止的游戏物体,才会勾选static,比如有些游戏场景是不动的,而游戏场景又很占资源,这个时候就可以勾选static了。

提到draw calls在Game界面里的stats(统计)可以查看到。

results matching ""

    No results matching ""