【Unity】シングルトンを使わずにシーン間でデータを共有したい


RPGゲームを開発中のUnity初心者です。シーン間のデータ共有の方法について検索をかけると「DontDestroyOnLoad」や「シングルトン」が多く結果に上がってきますが、正直あまり使いたくないのが本音です。

ます「シングルトン」はあまり多用したくないですよね・・・。
アイテムの所持状態やキャラステータス等シーン間で共有したいデータはたくさんあるのですが、その数のシングルトンを用意するのはオブジェクト指向に反していると感じます。「static」も同じです。

「DontDestroyOnLoad」に関しては個人的な感想なのですが、寿命が長いオブジェクトってどうなのっていう(;´・ω・)
シーンを切り替えても切り替えてもヒエラルキーに「DontDestroyOnLoad」が残り続けるのがなんか気持ち悪くて嫌なんです・・・。

ということでシーン切替時にデータを受け渡す方法を探したら神サイト様がありました!

SceneManager.sceneLoaded

こういう神サイト様の存在は本当にありがたいです😌
要はシーン切替時に呼び出すイベントの中で、シーン切替後のスクリプトを呼び出すことが可能だとのことです。その時にデータを渡せますね、便利です。