Content.Load() 不会创建新实例
本文关键字:创建 新实例 实例 Texture2D Load Content | 更新日期: 2023-09-27 18:30:46
我有这个结构:
public struct LevelElements
{
public Texture2D levelTexture;
// other variables...
}
我以这种方式初始化它:
for (int i = 0; i < 2; i++)
levelElements[i] = new LevelElements
{
levelTexture = content.Load<Texture2D>("Terrain/level"),
// other variables...
}
然后我绘制第一个纹理,同时使用textureLevel.SetData
方法对其进行修改。
问题是,如果我绘制第二个,它看起来与修改后的第一个相同,而不是从内容加载的原始内容。
为什么两个levelTexture
具有相同的引用?Content.Load<Texture2D>()
不创建新实例吗?
PS:我不需要创建该纹理的副本,我只是在测试我的代码,我发现了这种行为。
我以前没有使用过它,但在我看来,您希望像这样声明它以将其用作实例变量:
Texture2D texture = new Texture2D(
resourceDevice,
image.PixelWidth,
image.PixelHeight,
false,
SurfaceFormat.Color);
继续阅读:来自 MSDN