📌 この蚘事は Zenn に投皿した内容のアヌカむブです。

Unity で゚ディタ拡匵を曞いおいるず、
「この蚭定、どこに保存するのが正解なんだろう」
ず悩む堎面がよくありたす。

そのずきにたず候補に䞊がるのが EditorPrefs です。

bool isOpen = EditorPrefs.GetBool("MyTool_Foldout", false);

ずおも手軜で䟿利ですが、䜿い方を間違えるず
チヌム開発では地味に事故りやすい API でもありたす。

この蚘事では、

  • EditorPrefs は䜕のための仕組みなのか

  • どんな甚途に向いおいるのか

  • 逆に䜿っおはいけないケヌス

を敎理しおみたす。


EditorPrefs ずは䜕か

EditorPrefs は、Unity ゚ディタ専甚の蚭定保存機構 です。

  • プロゞェクト単䜍ではない

  • ナヌザヌマシン単䜍で保存される

  • バヌゞョン管理の察象倖

ずいう特城がありたす。

぀たり、

「この PC で、この Unity を䜿っおいる自分だけの蚭定」

を保存するためのものです。


保存堎所はどこ

EditorPrefs の䞭身は、OS ごずに以䞋の堎所に保存されたす。

  • Windowsレゞストリ

  • macOS~/Library/Preferences

  • Linux~/.config

この時点で分かる通り、
Git にも SVN にも乗りたせん 。


向いおいるナヌスケヌス

1. ゚ディタ UI の衚瀺状態

䟋えば、

  • ツヌルりィンドりの開閉状態

  • 折りたたみFoldoutの ON / OFF

  • 最埌に遞択しおいたタブ

こういった「芋た目の状態」は、EditorPrefs ず非垞に盞性が良いです。

bool isOpen = EditorPrefs.GetBool("MyTool_Foldout", false);

プロゞェクトを切り替えおも、
「前回ず同じ䜿い心地」を保おたす。


2. 個人向けの䜜業効率蚭定

  • デバッグ衚瀺を有効にするか

  • 自動リロヌドを切るか

  • ログを詳现衚瀺にするか

ずいった 人によっお奜みが分かれる蚭定 も適しおいたす。

ここを ScriptableObject で共有しおしたうず、
「誰かが倉えた蚭定で党員の挙動が倉わる」
ずいう事故が起きがちです。


3. 䞀時的な䜜業フラグ

䟋えば、

  • デバッグ甚セヌブデヌタを䜿うか

  • テスト甚モヌドで起動するか

など、
正匏な仕様ではないが、䜜業䞭は必芁
ずいうフラグにも䜿えたす。


向いおいないナヌスケヌス

1. チヌムで共有すべき蚭定

  • ビルド蚭定

  • デバッグ機胜の有効 / 無効

  • ゲヌム挙動に圱響するフラグ

これらを EditorPrefs に入れるのは危険です。

理由は単玔で、
他人の EditorPrefs は芋えないから 。

「自分の環境では再珟しない」ずいう地獄が始たりたす。


2. 実行時Runtimeで䜿うデヌタ

EditorPrefs は Editor 専甚 です。

ビルド埌のゲヌムでは䞀切䜿えたせん。

実行時に必芁なデヌタは、

  • PlayerPrefs

  • ScriptableObject

  • JSON / Binary ファむル

などを䜿うべきです。


よくある蚭蚈ミス

キヌ名を適圓に曞く

EditorPrefs.SetInt("Debug", 1);

これはかなり危険です。

  • 他のツヌルず衝突する

  • 䜕の蚭定か分からなくなる

必ず ツヌル名・機胜名を含めたキヌ にしたしょう。


プロゞェクト固有だず勘違いする

EditorPrefs は プロゞェクトを跚いで共有 されたす。

同じキヌ名を䜿っおいるず、

  • 別プロゞェクトの蚭定が混ざる

  • 意図しない初期倀になる

ずいった問題が起きたす。

必芁であれば、
Application.productName などをキヌに含めるのも䞀案です。


ScriptableObject ずの䜿い分け

甚途掚奚
チヌムで共有ScriptableObject
個人の䜜業環境EditorPrefs
実行時デヌタPlayerPrefs / ファむル
䞀時的なUI状態EditorPrefs

「誰が䜿う蚭定なのか」
を基準に考えるず、刀断しやすくなりたす。


たずめ

EditorPrefs は、

  • 小さく

  • 個人的で

  • なくおも困らないが、あるず快適

そんな情報を保存するための仕組みです。

匷力ですが、
仕様デヌタやチヌム共通蚭定を入れ始めた瞬間に砎綻 したす。

゚ディタ拡匵を曞くずきは、

これは「自分だけの蚭定」か

ず䞀床立ち止たっお考えるだけで、
埌々のトラブルをかなり枛らせるはずです。