C# 加载随机级别,但不是同一级别?

C# 加载随机级别,但不是同一级别?,c#,random,unity3d,C#,Random,Unity3d,我有一个有多个回合的游戏。每一轮都有一张不同的地图,在每一轮结束时,从场景列表中加载一个随机场景。我有一个场景列表,比如: Arena 1 Arena 2 Arena 3 Arena 4 Arena 5 当回合结束时,我使用这行代码随机加载它们: Application.LoadLevel("Arena " + Random.Range(1, LEVEL_COUNT)); 其中LEVEL_COUNT是我拥有的最大场景数 这很好,除了有时当回合结束时,刚刚播放的同一场景会重新加载。比如说,如果

我有一个有多个回合的游戏。每一轮都有一张不同的地图,在每一轮结束时,从场景列表中加载一个随机场景。我有一个场景列表,比如:

Arena 1
Arena 2
Arena 3
Arena 4
Arena 5
当回合结束时,我使用这行代码随机加载它们:

Application.LoadLevel("Arena " + Random.Range(1, LEVEL_COUNT));
其中LEVEL_COUNT是我拥有的最大场景数

这很好,除了有时当回合结束时,刚刚播放的同一场景会重新加载。比如说,如果你玩竞技场3并且回合结束,竞技场3可能会再次重新加载

那么,是否可以像我这样加载一个随机场景,但不加载一个与我们刚才播放的场景相同的场景?因此,在这种情况下,加载除竞技场3之外的任何内容


谢谢你的帮助

我相信你是说你可以重复场景,但不能连续,对吗?所以你可以多次玩竞技场3,只要每次中间有另一个场景

如果是这样的话,我会这样做:

//Store the current scene in an integer. Set to zero by default.
int previousScene = 0;
第一次获得随机场景时,可以选择多少个场景。但是从那以后,因为你不能重复这个场景,它实际上是LEVEL_COUNT-1

//Randomly load the scene
int nextScene;
if(previousScene == 0)
    nextScene = Random.Range(1, LEVEL_COUNT);
else
    nextScene = Random.Range(1, LEVEL_COUNT - 1);
每次RNG返回与前一级别相同或更高的级别时,只需向其添加1。然后存储上一个场景,然后重复

if(nextScene >= previousScene){
    nextScene = nextScene + 1;
}
Application.LoadLevel("Arena " + nextScene);
previousScene = nextScene;

我相信你是说你可以重复场景,但不能连续,对吗?所以你可以多次玩竞技场3,只要每次中间有另一个场景

如果是这样的话,我会这样做:

//Store the current scene in an integer. Set to zero by default.
int previousScene = 0;
第一次获得随机场景时,可以选择多少个场景。但是从那以后,因为你不能重复这个场景,它实际上是LEVEL_COUNT-1

//Randomly load the scene
int nextScene;
if(previousScene == 0)
    nextScene = Random.Range(1, LEVEL_COUNT);
else
    nextScene = Random.Range(1, LEVEL_COUNT - 1);
每次RNG返回与前一级别相同或更高的级别时,只需向其添加1。然后存储上一个场景,然后重复

if(nextScene >= previousScene){
    nextScene = nextScene + 1;
}
Application.LoadLevel("Arena " + nextScene);
previousScene = nextScene;

这与复制品的问题不同。看我的答案。这和复制品的问题不一样。看看我的答案。