在这里我可以用什么代替(开关)?

Jam*_*ley 5 c# switch-statement unity-game-engine

public int[] Level1Items(int floor)
{
    switch (floor) 
    {
        case 0:
        case 1:
        case 2:
        case 3:
        case 4: return CreateItems(0, 0, 0, 0, 0, 0);
        case 5:
        case 6: return CreateItems(1, 0, 0, 0, 0, 0);
        case 7:
        case 8:
        case 9: return CreateItems(1, 1, 0, 0, 0, 0);

    }
    return generationItems;
}
Run Code Online (Sandbox Code Playgroud)

基本上我有一个关卡生成方法,在某些关卡中,生成会发生变化,并且会出现不同的项目。0-4 级将没有额外的产卵,5-6 级将有 1 个额外的 X,7-9 级将有 1X 和 1Y 等。

所以在我开始制作案例 10 到 99 之前,有没有更好的方法可以解决这个问题?也许有一系列的 ifs 只是改变特定楼层的数组?或者有什么我没有想到的完全不同的东西。

任何想法将不胜感激:)

编辑 1:感谢大家的投入,真的帮助我解决了我的问题,也感谢所有的快速回复。

我决定简单地将我的 int[] 保存在我的 GameData 中,并仅在特定楼层使用开关来更改它。再次感谢!

Bri*_*ing 0

基本上,您可能希望将 level:items 对存储到配置文件(可能是 json 或 xml),并在运行时根据 level 和 Floor 读取配置