Unityにおいて、ScriptableObjectを使用したシーン間でデータを受け渡す方法
結論
前提として、Don’tDestroyObjectに設定したゲームが起動している限り消えないオブジェクトに、データを変更する予定があるScriptableObjectから生成したPrefabファイルの参照を保持させる必要がある。その状態で、Prefabから取得した値を変更すればそれが反映される。
変更はゲームを終了すると消えてしまうので、Saveデータとして別に保存しておく必要がある。
参考にした記事
【Unity】とりあえずScriptableObjectを知っておこう
【Unity】Editor拡張でScriptableObjectを保存するには
なんで参照を維持しておかないと変更したデータが消えるのかは不明。
多分、「EditorUtility.SetDirty」とか「EditorSceneManager.MarkSceneDirty」とか「AssetDatabase.SaveAssets」がキーワードになってそう。
※EditorUtilityはプレイモードでしか使用できないクラス。
ディスカッション
コメント一覧
まだ、コメントがありません