2

我正在使用 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,想知道是否可以在“脚本”下拉菜单或“带有方法的脚本”下拉菜单中输入正确的随机范围脚本,因为我宁愿使用自定义按钮。任何帮助将不胜感激。

4

2 回答 2

1

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

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));
    }
}
于 2011-02-12T20:07:51.673 回答
0

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

于 2011-02-10T19:44:12.790 回答