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 ドキュメントから直接試して、ランダム シーンがビルド内のシーンの数だけからロードされるかどうかを確認します。ありがとう

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 に答える