unity > シーン間移動でDontDestroyOnLoad(this)したGameObjectの関連付けが消える

  • 4
    いいね
  • 2
    コメント
この記事は最終更新日から1年以上が経過しています。
動作確認
Unity 5.1.2-f1 on MacOS X 10.8.5
  • Mainシーン
    • UI > Button
    • UI > InputField
    • UI > Toggle
    • GameObject: someProcess
  • Otherシーン
    • UI > Button  

MainシーンからButtonでOtherシーンへ移動し、OtherシーンからButtonでMainシーンに戻るようにしている。

Main -> Other -> Main にシーン移動した時、someProcesゲームオブジェクトのスクリプト(someProcessScript.cs)にインスペクタで関連づけていたInput Field, Toggleが両方ともNoneになってしまう。

someProcessScript.cs
using UnityEngine;
using System.Collections;
using UnityEngine.UI;

public class someProcessScript : MonoBehaviour {

    public InputField IF_name;
    public Toggle Toggle_test;
    private static bool created = false;

    void Awake() {
        if (!created) {
            created = true;
            DontDestroyOnLoad (this.gameObject);
        } else {
            Destroy (this.gameObject);
        }
    }

    void Start () {
    }

    void Update () {

    }
}

どうもMainシーンに戻った時にDestory()されているのは、新しく作られた方でなく、もとからあったほうで、そのため関連付けがNoneになっているようだ。

新しく作られた方をDestroy()する方法を模索中。