unityでシングルトンとシングルトンのように見えるものの違い

前提

unityでシングルトンを使っていたつもりになっていたんですが、別のシーンに遷移した後に元のシーンに戻ってきたら、Destroy(this.gameObject);の影響(?)でそのオブジェクトに対する別のオブジェクトのインスペクターウィンドウで設定していた参照が消失していました。
現時点では別の方法をとることで問題なく動かすことができているのですが、以前していた方法と今している方法では具体的にどういった違いがあるのかをお聞きしたいです。

該当のソースコード

//以前の方法 void Awake() { if (instance == null) { instance = this; DontDestroyOnLoad(this.gameObject); } else Destroy(this.gameObject); } //今の方法 void Awake() { if (instance != null) { Destroy(this.gameObject); return; } instance = this; DontDestroyOnLoad(this.gameObject); }

試したこと

chatGPTで調べたところ今の方法はシングルトンになっているが、以前の方法ではなっていないとのことでした

補足情報(FW/ツールのバージョンなど)

Unityバージョン 2020.3.0f1
VisualStudioバージョン 16.9.4

コメントを投稿

0 コメント