unity3d性能优化之将GameObject标记为静态
2018-09-27 本文已影响0人
Eanan
首先,每一个GameObject都可以标记成静态的或非静态的
默认情况下是不勾选static的(static:静态)
图片.png
那么标记为静态的又有什么用呢?
我们知道在游戏开发,尤其是手机游戏,在节省资源,优化性能方面是很重要的,游戏的大小和流畅度是必须考虑的。
而标记为static后,可以优化效率,使游戏更加流畅。
既然说到static勾选可以提高游戏效率,那么我们所有物体都勾选static不就更节约了吗?
当然不是
。
所谓静态就是静止的,如果要改变了它的位置,就不是静态的了,静态物体在脚本加载的时候就开始渲染,不随着update 每帧更新,如果要移动物体,就必然要重新刷新,就是动态的了 ,即使你把移动的物体勾选了static,draw calls 也并不会减少,并且效率和原先的一样没有得到优化。
所以通常一直静止的游戏物体,才会勾选static,比如有些游戏场景是不动的,而游戏场景又很占资源,这个时候就可以勾选static了。
通过代码控制
gameObject.isStatic = false;
不过这段代码要在游戏物体实例化之前运行才能得到优化,否则不会得到优化。