从switch语句返回一个GameObject

时间:2018-04-28 19:28:15

标签: c# unity3d switch-statement return

从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;
}

1 个答案:

答案 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;