0

我有这个结构:

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:我不需要创建该纹理的副本,我只是在测试我的代码,我发现了这种行为。

4

1 回答 1

1

我以前没有使用过它,但在我看来,您可能希望像这样声明它以便将其用作实例变量:

Texture2D texture = new Texture2D( resourceDevice, image.PixelWidth, image.PixelHeight, false, SurfaceFormat.Color);

继续阅读:来自 msdn

于 2013-09-08T23:57:38.603 回答