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
,它应该可以工作。
如果你有彩色图像,你会立即发现有问题,因为它们也会显示为黑色。
我有树的 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
,它应该可以工作。
如果你有彩色图像,你会立即发现有问题,因为它们也会显示为黑色。