2011-02-09 46 views
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を利用できますし、カスタムのボタンを使いたいので、正しいスクリプトをドロップダウンリストに入力することができますか?どんな支援も大歓迎です。

答えて

0

Unityドキュメントのサンプルコードは正常に動作するはずです。 "Application.LoadLevel(Random.Range(0、Application.levelCount))"はランダムなシーンをロードします。レベル番号は、ビルド設定の順序に基づいています。それらをビルドに含めるのを忘れた可能性はありますか?ちょうど10シーンを持つだけでは不十分です、彼らはビルドに含まれていない場合は取り除かれます。

+0

答え@DonavanStanleyありがとうございます。私は自分のビルドにレベル名と注文番号を持っていました。しかし、それが何を突き進めたかは、レベルの名前を英数字から整数1-10に変更することでした。 –

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)); 
    } 
} 
関連する問題