2011-02-09 66 views
2

我正在使用Unity 3構建我的遊戲。我有一個基本的圖形用戶界面按鈕,點擊時,我想讓用戶進入隨機級別。我的遊戲中有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

來自Unity文檔的示例代碼應該可以正常工作。 「Application.LoadLevel(Random.Range(0,Application.levelCount))」將加載一個隨機場景。級別數字基於您的構建設置中的順序。是否有可能忘記將它們包含在構建中?只有10個場景是不夠的,如果它們不包含在構建中,它們將被剝離。

+0

感謝您的回答@DonavanStanley。我的編譯版本中有層次名稱和訂單號。然而,啓動它的是什麼是從字母數字到整數1-10級別的名稱。 – 2011-02-12 19:54:56

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)); 
    } 
}