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;
这与复制品的问题不同。看我的答案。这和复制品的问题不一样。看看我的答案。