Edited at

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

More than 1 year has passed since last update.


動作確認

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()する方法を模索中。