加载一个随机级别,但不是同一级别
本文关键字:一级 随机 加载 一个 | 更新日期: 2023-09-27 18:26:59
我有一个有多个回合的游戏。每个回合都有一个不同的贴图,在回合结束时,从场景列表中加载随机场景。我有一个场景列表,比如:
Arena 1
Arena 2
Arena 3
Arena 4
Arena 5
当回合结束时,我使用以下代码随机加载它们:
Application.LoadLevel("Arena " + Random.Range(1, LEVEL_COUNT));
其中CCD_ 1是我具有的场景的最大数量。
这很好,只是有时当回合结束时,刚刚播放的同一场景会重新加载。假设你玩Arena 3
并且回合结束,Arena 3
可能会再次重新加载。
那么,是否可以像我一样加载一个随机场景,但不加载与我们刚才播放的场景相同的场景?因此,在这种情况下,加载除Arena 3
之外的任何内容。
谢谢你的帮助!
我相信你是说你可以重复场景,但不能连续,对吗?所以你可以多次玩竞技场3,只要每次之间有另一个场景。
如果是这样的话,那么我会这样做:
//Store the current scene in an integer. Set to zero by default.
int previousScene = 0;
第一次获得随机场景时,有LEVEL_COUNT数量的场景可供选择。但此后,由于无法重复该场景,因此它实际上是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;