unity3d性能优化之将GameObject标记为静态

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

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


图片.png

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

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

而标记为static后,可以优化效率,使游戏更加流畅。

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

当然不是

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

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

通过代码控制

    gameObject.isStatic = false;  

不过这段代码要在游戏物体实例化之前运行才能得到优化,否则不会得到优化。

你可能感兴趣的:(unity3d性能优化之将GameObject标记为静态)