Content.Load <texture2d>()不会创建新实例吗?</texture2d>

时间:2013-09-08 23:32:08

标签: c# reference xna xna-4.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:我不需要创建该纹理的副本,我只是测试我的代码而且我发现了这种行为。

1 个答案:

答案 0 :(得分:1)

我之前没有使用它,但在我看来,你想要将它声明为这样,以便将它用作实例变量:

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

read on:来自msdn