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

(:3[kanのメモ帳]

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

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

Unity エディタ拡張

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


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

はじめに

エディタ拡張をしている時に、設定を保存したい時があります。


そんな時はテキストファイル等に書き出して保存する事も出来ますが、

余計なファイルが増えますし、なによりそのプロジェクトでしか使えません。

さらに、複数人で開発する場合はバージョン管理から外さなければ共通のデータになってしまいます。


今回はそんな時に使えるプロジェクトをまたいでデータを保存する方法についての記事です。


EditorPrefsWindow

プロジェクトをまたいでデータを保存したい場合に最適なのがEditorPrefsです。

EditorPrefsはその名の通り、エディタの情報を保存するクラスです。


Unity - スクリプトリファレンス:EditorPrefs


さっそくこのEditorPrefsを使った例を以下に示します。

メニューを選択するとウィンドウが開き、プロジェクトをまたいで文字列を保存するエディタ拡張です。



上記のEditorPrefsWindow.csをEditorディレクトリに入れると、

Window/EditorPrefsWindowというメニューが出てきて、それを選択するとウィンドウが表示されます。


f:id:kan_kikuchi:20150901140251j:plain


最初にdefaultと描かれているテキストボックスに値を入力するとその文字列が保存され、

再度ウィンドウを表示した時に同じ文字列が最初から表示されます。

もちろん、違うプロジェクトでEditorPrefsWindowを表示しても同じ文字列が表示されます。


EditorPrefs

上記の通り、EditorPrefsは

EditorPrefs.GetString(保存key, デフォルト値)でデータ取得、

EditorPrefs.SetString (保存key, 保存値)でデータ保存が行えます。


このデータは/Library/Preferences/com.unity3d.UnityEditor.plistに保存され、

全プロジェクト共通のものとなるため、プロジェクトをまたいでデータを保存出来るようになります。


また保存場所がプロジェクト外のため、プロジェクトのバージョン管理に含まれる事もありません。


ただし保存される情報は平文のため、重要な情報は保存しないほうが賢明です。


なおEditorPrefsの存在はUnity エディター拡張入門という本で知りました。

エディター拡張をやる上で必読になりそうなぐらい勉強になります……!