我的游戏中会有很多(外观相同)的僵尸。
使纹理静态化是个好主意,这样就SpriteBatch
不需要加载新的纹理了吗?
我遍历整个僵尸列表并用相同的调用绘制每个僵尸,只是改变了位置。会SpriteBatch
得到吗?每次都完全一样的质地吗?劣势可能在哪里?
我的游戏中会有很多(外观相同)的僵尸。
使纹理静态化是个好主意,这样就SpriteBatch
不需要加载新的纹理了吗?
我遍历整个僵尸列表并用相同的调用绘制每个僵尸,只是改变了位置。会SpriteBatch
得到吗?每次都完全一样的质地吗?劣势可能在哪里?
我不认为使用static
会给你带来某种好处。
可以肯定的是,如果Texture2D
只加载一次,就可以节省内存,并且可以使用相同的变量绘制多少次。
无论如何,如果您只使用一种纹理,则没有任何问题,因为:
每个 ContentManager 实例只会加载任何给定资源一次。第二次请求资源时,它将返回与上次返回的实例相同的实例。
ContentManager 维护它在内部加载的所有内容的列表。此列表可防止垃圾收集器清理这些资源。
参考这里。