C# 将静态纹理2D与SpriteBatch一起使用是否会提高性能?
我的游戏中会有很多(长相相同)的僵尸 将纹理设置为静态,以便C# 将静态纹理2D与SpriteBatch一起使用是否会提高性能?,c#,static,xna,textures,spritebatch,C#,Static,Xna,Textures,Spritebatch,我的游戏中会有很多(长相相同)的僵尸 将纹理设置为静态,以便SpriteBatch不需要加载新纹理,这是一个好主意吗 我浏览了整个僵尸列表,画出每个僵尸都有相同的叫声,只是改变了位置。SpriteBatch会收到吗?每次都是一样的纹理?缺点在哪里?我不认为使用static会给你带来什么好处。 可以肯定的是,如果只加载一次Texture2D,可以节省内存,并且可以使用相同的变量绘制多少次 无论如何,如果只使用一种纹理,则不会有任何问题,因为: ContentManager的每个实例将只加载任何给定
SpriteBatch
不需要加载新纹理,这是一个好主意吗
我浏览了整个僵尸列表,画出每个僵尸都有相同的叫声,只是改变了位置。
SpriteBatch
会收到吗?每次都是一样的纹理?缺点在哪里?我不认为使用static
会给你带来什么好处。可以肯定的是,如果只加载一次
Texture2D
,可以节省内存,并且可以使用相同的变量绘制多少次
无论如何,如果只使用一种纹理,则不会有任何问题,因为:
ContentManager的每个实例将只加载任何给定的资源
一旦第二次请求资源时,它将返回相同的结果
它上次返回的实例
ContentManager维护其加载的所有内容的列表
内部。此列表阻止垃圾收集器进行清理
这些资源
参考。如果您使用的是同一个纹理对象,精灵批会注意到它。如果它是另一个物体,它不会。