読者です 読者をやめる 読者になる 読者になる

(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

プロジェクト内でデータを保存【Unity】【エディタ拡張】


このエントリーをはてなブックマークに追加


この記事でのバージョン
Unity 5.1.0f3 Personal

はじめに

以前、プロジェクトをまたいでデータを保存する記事を書きましたが、



今回はプロジェクト内でデータを保存する方法です。

今回も、基本的にエディタ拡張で使う機能だと思われます。


EditorUserSettings


プロジェクト内でデータを保存したい場合に使えるのがEditorUserSettingsです。

EditorUserSettingsは極めてシンプルで、GetとSetのみ、しかも保存できるのはstringだけです。

//"TestKey"というKeyで保存されている値を取得、値が存在しない場合はnullが返ってくる
string value = EditorUserSettings.GetConfigValue ("TestKey");

//"TestKey"というKeyで"TestValue"という値を保存
EditorUserSettings.SetConfigValue ("TestKey", "TestValue");


分かり易くて良いですが、

保存されている値の一覧表示や要素の削除が出来ないので、少々使い難いです。


EditorUserSettingsの保存場所

EditorUserSettingsでどこに保存したかというと、Assetsディレクトリと同階層にある

Libraryディレクトリの中のEditorUserSettings.assetです。


f:id:kan_kikuchi:20151020135337p:plain


EditorUserSettings.assetは暗号化されており、

確認したい場合はUnityに同梱されているbinary2textを使います。


Unityで作られた特殊データの中身を確認する - パルテノン神殿


binary2textは、Unityのアプリケーションを右クリックし、

パッケージ内容を表示した中にあるContents/Toolsディレクトリに入っています。


f:id:kan_kikuchi:20151020140318p:plain
f:id:kan_kikuchi:20151020140323p:plain


このbinary2textをターミナルへドラッグ&ドロップ

さらにEditorUserSettings.assetも同様にターミナルへドラッグ&ドロップした後、

実行するとEditorUserSettings.assetを復号化したテキストファイルが作成されます。


f:id:kan_kikuchi:20151021133701p:plain


このテキストファイルを見ると、EditorUserSettings保存した値が

first "Key" second "Value"という形で確認出来ます。


f:id:kan_kikuchi:20151021133732p:plain


おわりに

普通はLibraryディレクトリをバージョン管理に含まないらしいので、

そのプロジェクトのみかつ、各個人の設定を行いたい場合に使えると思います。