はなちるのマイノート

Unityをメインとした技術ブログ。自分らしくまったりやっていきたいと思いますー!

【Unity】PlayerPrefsのエディタをエディタ拡張で作ってみた

はじめに

今回はPlayerPrefsの自作エディタの記事になります!

Unityのセーブ機能の代表であるPlayerPrefsですが、不便に感じたことがよくあるのではないでしょうか?

特にPlayerPrefsが今どのような状態になっているかが全く分からないことが原因のひとつだと思います。

なので、それを解決できるエディタ拡張を作ってみました!

github.com

こちらのついて少しだけ紹介をしたいと思います。

機能

  • PlayerPrefsの一覧を表示する
  • 新しいPlayerPrefsの作成
  • PlayerPrefsの個別・全体の削除
  • 操作を誤ったときのためにUndo・Redo機能

ただしWindows以外のEditorでは動かない可能性が高いです。

使い方

上に貼った動画をみるのが一番分かりやすいと思いますが、一応書きたいと思います。

画面の起動方法

f:id:hanaaaaaachiru:20190526151459p:plain

左上のところからTools -> PlayerPrefsEditorをクリックすればWindowが出てきます。

PlayerPrefsの作成

f:id:hanaaaaaachiru:20190526152108p:plain

KeyValueを入力後、右のCreateをクリックすればPlayerPrefsが作成されます。

f:id:hanaaaaaachiru:20190526152330p:plain

また、Valueの値の種類は右から2番目のところから選択できます。

PlayerPrefsの削除

f:id:hanaaaaaachiru:20190526152506p:plain

個別で削除をしたい場合は、右のDeleteをクリックすれば削除することができます。

f:id:hanaaaaaachiru:20190526152607p:plain

また、一気に全て削除したい場合は右上のDelete All...をクリックします。

PlayerPrefsを再ロードする

f:id:hanaaaaaachiru:20190526152659p:plain

Window起動,PlayerPrefsの作成・削除を行ったときにPlayerPrefsを読みとりますが、それ以外の時で読み取りたいときは右上のReload...ボタンをクリックしてください。

Undo,Redoをする

f:id:hanaaaaaachiru:20190526152854p:plain

なにか誤った操作(作成,削除)を行ってしまった場合は、左上のUndoをクリックすることで戻ることができます。

逆に誤って戻ってしまった場合は、左上のRedoボタンをクリックすることで再度動作を行います。

これらの情報はPlayerPrefsEditorのWindowを起動するごとにリセットされるので注意してください。

またUndo・RedoでPlayerPrefsを再度作成したとき、元の位置に表示されるのではなく、一覧の一番下に表示されることも注意してください(いずれ直したい)。

注意点

Windowsでは動作確認済みですが、MacOs・Linuxでは動かない可能性が高いです

さらにPlayerPrefsのロードする際、キーに対応する値の型を教えてくれるメソッドがありません。

その弊害として、0 -2147483648 という数字(string型は関係ありません)はintに勝手になっています(Undo,Redo時のみ)。

いずれ対応をしたいと思いますが、ご了承ください。

ダウンロード方法

github.com

こちらからunitypackageをダウンロードし、自分のUnity内にインポートしてください。

容量も数KBなので容量の心配も大丈夫だと思います。

また、コードをお見せするのが少し恥ずかしいのでプラグインに変換をしました。

なにかエラーなどの問題がありましたらTwitterやコメント等で教えていただけると嬉しいです。

動画について

動画ではDelete Allを押すとPlayerPrefs do not exitという文字がでていましたが、普通に作成できるところを表示するように変更しました。

修正

2019/05/30 Debug.Logでのコンソールへの出力を廃止,int・float判定時に強制でintになってしまう値を-2147483648に変更

なにか改善点があれば是非教えていただけると嬉しいです!