Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/164.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将静态纹理2D与SpriteBatch一起使用是否会提高性能?_C#_Static_Xna_Textures_Spritebatch - Fatal编程技术网

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维护其加载的所有内容的列表 内部。此列表阻止垃圾收集器进行清理 这些资源


参考。

如果您使用的是同一个纹理对象,精灵批会注意到它。如果它是另一个物体,它不会。