この記事でのバージョン
Unity 5.1.0f3 Personal
はじめに
エディタ拡張をしている時に、設定を保存したい時があります。
そんな時はテキストファイル等に書き出して保存する事も出来ますが、
余計なファイルが増えますし、なによりそのプロジェクトでしか使えません。
さらに、複数人で開発する場合はバージョン管理から外さなければ共通のデータになってしまいます。
今回はそんな時に使えるプロジェクトをまたいでデータを保存する方法についての記事です。
EditorPrefsWindow
プロジェクトをまたいでデータを保存したい場合に最適なのがEditorPrefsです。
EditorPrefsはその名の通り、エディタの情報を保存するクラスです。
Unity - スクリプトリファレンス:EditorPrefs
さっそくこのEditorPrefsを使った例を以下に示します。
メニューを選択するとウィンドウが開き、プロジェクトをまたいで文字列を保存するエディタ拡張です。
上記のEditorPrefsWindow.csをEditorディレクトリに入れると、
Window/EditorPrefsWindowというメニューが出てきて、それを選択するとウィンドウが表示されます。
最初にdefaultと描かれているテキストボックスに値を入力するとその文字列が保存され、
再度ウィンドウを表示した時に同じ文字列が最初から表示されます。
もちろん、違うプロジェクトでEditorPrefsWindowを表示しても同じ文字列が表示されます。
EditorPrefs
上記の通り、EditorPrefsは
EditorPrefs.GetString(保存key, デフォルト値)でデータ取得、
EditorPrefs.SetString (保存key, 保存値)でデータ保存が行えます。
このデータは/Library/Preferences/com.unity3d.UnityEditor.plistに保存され、
全プロジェクト共通のものとなるため、プロジェクトをまたいでデータを保存出来るようになります。
また保存場所がプロジェクト外のため、プロジェクトのバージョン管理に含まれる事もありません。
ただし保存される情報は平文のため、重要な情報は保存しないほうが賢明です。
なおEditorPrefsの存在はUnity エディター拡張入門という本で知りました。
エディター拡張をやる上で必読になりそうなぐらい勉強になります……!