从switch语句返回GameObject的正确方法是什么?当我尝试返回头像时,我得到错误'使用未分配的局部变量'头像''。关于如何使用switch语句返回工作,我有点混淆了。谢谢你的帮助!
private GameObject GetAnimalAvatar(string animal)
{
GameObject avatar;
switch (animal)
{
case "bear":
avatar = ForestGameManager.fgm.bearAvatar;
break;
case "boar":
avatar = ForestGameManager.fgm.boarAvatar;
break;
case "doe":
avatar = ForestGameManager.fgm.doeAvatar;
break;
default:
break;
}
return avatar;
}
答案 0 :(得分:6)
如果不满足任何案例条件,则avatar
变量将不会被初始化,因为它只是声明为GameObject avatar;
导致该错误。
您有两种选择:
1 。在默认检查中初始化或将avatar
变量设置为null
。这意味着如果没有满足任何条件条件,则default
将执行,并且您的案例将设置为null
。
switch (animal)
{
case "bear":
avatar = ForestGameManager.fgm.bearAvatar;
break;
case "boar":
avatar = ForestGameManager.fgm.boarAvatar;
break;
case "doe":
avatar = ForestGameManager.fgm.doeAvatar;
break;
default:
//INITIALIZED TO NULL
avatar = null;
break;
}
2 。将其设置为声明它的null
:
更改
GameObject avatar;
到
GameObject avatar = null;