4

Unity には、ゲームの残りの部分とは別のシーンでオンとオフを切り替えるトグル スイッチのリストがあるクラスがあります。私が望んでいるのは、ユーザーが 1 つのボタンを選択し、そのシーンに戻ったときにメイン ゲームで対応するアクションが発生するようにすることです。ただし、シーン間の情報の送信に問題があります。

現時点では、トグル クラスは次のようになります。

private bool action1 = false;
public bool Action1
{
    get { return action1;}
}

void OnGUI() 
{
    action1 = GUI.Toggle(new Rect(10, 10, 100, 30), action1, "test");   
}

void Update()
{
    if(Input.GetButton("Jump"))
    {
        Application.LoadLevel("Main");
    }
}

次に、メイン シーンで開催されたクラスに、次のコードがあります。

private ActionClass actionIsOn = new ActionClass();
void Start() 
{
    if(actionIsOn.Action1 == true)
    {
        Debug.Log("action is on");
    }
    else
    {
        Debug.Log("nothing happening");
    }
}

ただし、これをテストしても何も起こりません。

これを正しく設定しましたか?この情報をあるシーンから別のシーンに渡すより良い方法はありますか?

4

1 に答える 1

7

オプション1:

静的クラスを使用して、複数のシーンに関連するグローバル情報を保持します。

public static class GlobalData
{
       public static bool SomeBooleanFlag;
}

このようにして、最初のシーンでGlobalData.SomeBooleanFlag値を設定し、2 番目のシーンでそれを確認できます。

オプション #2:

Object.DontDestroyOnLoad新しいシーンのロード時にシーン内のオブジェクトが破壊されないようにするために使用できます。このようにして、他のシーンに渡したいすべての情報を 1 つのオブジェクトに集約し (または複数のオブジェクトを使用して、それらをすべて存続させます)、シーンが変更された後でも存続するようにします。

http://docs.unity3d.com/Documentation/ScriptReference/Object.DontDestroyOnLoad.html

于 2013-11-10T14:07:56.200 に答える