如何加载随机级别?

时间:2011-02-09 20:27:31

标签: user-interface unity3d unityscript levels

我正在使用Unity 3来构建我的游戏。我有一个基本的GUI按钮,当点击时,我希望用户被带到一个随机的水平。我的游戏中有10个关卡。下面是我试图实现的代码的副本。

function OnGUI()
{
    // Make a background box
    GUI.Box(Rect(10, 10, 100, 90), "Oracle");

    if (GUI.Button(Rect(20, 40, 80, 20), 9)) ;
    {
        Application.LoadLevel(Random.Range(0, 9));
    }
}

没有发生。我也试过了:

function OnGUI()
{
    // Make a background box
    GUI.Box(Rect(10, 10, 100, 90), "Oracle");


    if (GUI.Button(Rect(20, 40, 80, 20))) ;
    {
        Application.LoadLevel(Random.Range(0, Application.levelCount 9));
    }
}

我之前从未使用过Random.Range函数,并且对于正确的格式有点困惑。

此外,我有可用的EZ GUI,并且想知道我是否可以在“脚本”下拉列表中输入正确的随机范围脚本,或者“使用方法的脚本”下拉工作,因为我宁愿使用自定义按钮。非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

这是有效的代码。我将重建并添加更多级别,我将直接从Unity文档中尝试,并查看随机场景是否仅从构建中的场景数量加载。感谢DigitalD

static var levelCount : int;

function OnGUI () {
   // Make a background box
    GUI.Box (Rect (10,10,100,90), "ORACLE");

    if (GUI.Button (Rect (20,40,80,20), "Genie")) {
        Application.LoadLevel (Random.Range(0, Application.levelCount-5));
    }
}

答案 1 :(得分:0)

Unity文档中的示例代码应该可以正常工作。 “Application.LoadLevel(Random.Range(0,Application.levelCount))”将加载一个随机场景。级别编号基于构建设置中的顺序。是否有可能忘记将它们包含在构建中?仅仅有10个场景是不够的,如果它们没有被包含在构建中,它们将被剥离。