嘿大家,我正在使用两个Texture2D对象的逐像素颜色比较,一个类看起来像这样:
public class MyClass
{
Texture2D sprite;
Vector2 position;
float scale;
Color[] spriteTextureData;
public MyClass(Texture2D texture, Vector2 pos)
{
sprite = texture;
position = pos;
center = new Vector2(sprite.Width/2, sprite.Height/2);
scale = 1;
spriteTextureData = new Color[sprite.Width * sprite.Height];
sprite.GetData(spriteTextureData);
<breakpoint>
}
}
我的问题是,当我调用sprite.GetData(spriteTextureData)时,我最终会得到一个全部为空的颜色数组(我的意思是“空”将是:{R:0 B:0 G:0 A:0})。对我来说奇怪的是,我一直在使用这个方法和几个不同的类,并且像素比较到目前为止一直在工作。这是给我带来问题的。如果我在GetData()调用之后立即放置一个NOOP并插入断点,它立即显示该数组为空。有什么建议?谢谢你的帮助!
更新:我尝试将实际图像文件更改为其他图像并正确加载颜色。看起来由于某种原因这个图像有问题...它们都是相同的文件类型,我不明白为什么这会导致问题。我会做更多的工作,看看能否提出解释。