我正在使用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,并且想知道我是否可以在“脚本”下拉列表中输入正确的随机范围脚本,或者“使用方法的脚本”下拉工作,因为我宁愿使用自定义按钮。非常感谢任何帮助。
答案 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个场景是不够的,如果它们没有被包含在构建中,它们将被剥离。