Unity 2D - 从脚本访问它时弄乱了精灵

Unity2D - messed up sprite while accesing it from script

我有树的 64x64 纹理:

但输出给了我这个(黑色的乱七八糟的物体是我的树)

如果我将 sprite 拖到编辑器中,它会按原样呈现(创建新的游戏对象)。但我是通过脚本访问它的:

public Sprite treesIcon;

SpriteRenderer sr;

TileTypeHandler typeHandler;

void Start () {
    sr = GetComponent<SpriteRenderer>();
}


void Update () {
    switch(typeHandler.tileType) /// nevermind enum, its edited
    {
        case TileType.Woods:
            {
                sr.sprite = treesIcon;
                break;
            }
    }
}

重点是动态改变贴图。

任何人都可以向我解释这种行为吗?关于精灵和纹理,我缺少什么吗?我该如何解决?

结果看起来 SpriteRenderer 使用了错误的 shader,将 Material 更改为 Sprites-Default,它应该可以工作。

如果你有彩色图像,你会立即发现有问题,因为它们也会显示为黑色。