Texture2D.GetData () Возвращает все прозрачные цвета? - PullRequest
0 голосов
/ 18 мая 2011

Привет всем, я использую попиксельное сравнение цветов двух объектов 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}).Странно для меня то, что я использовал этот метод с парой разных классов, и сравнение пикселей до сих пор работало.Это тот, который доставляет мне проблемы.Если я ставлю NOOP сразу после вызова GetData () и вставляю точку останова, это сразу показывает, что массив пуст.Какие-либо предложения?Спасибо за вашу помощь!

Обновление: я попытался изменить фактический файл изображения на другое изображение, и цвета загружены правильно.Похоже, по какой-то причине что-то не так с этим изображением ... они оба имеют одинаковый тип файла, я не понимаю, почему это может вызвать проблему.Я сделаю еще немного работы и посмотрю, смогу ли я найти объяснение.

...