gre*_*Bow 0 c# return switch-statement unity-game-engine
从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;
}
Run Code Online (Sandbox Code Playgroud)
该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;
}
Run Code Online (Sandbox Code Playgroud)
2.将null其设置为声明的位置:
更改
GameObject avatar;
Run Code Online (Sandbox Code Playgroud)
至
GameObject avatar = null;
Run Code Online (Sandbox Code Playgroud)