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

SuiTechLog

Unity,Arduino,RaspberryPiなど、モノづくり系を気ままに書き残すブログ。

Unity Editor拡張とデータ保存

変数の保存

 Editor拡張スクリプトや、Editorの中で変数データを簡易的に保存、取得するには以下の方法があります。

//変数を保存する
EditorUserSettings.SetConfigValue (キー文字列, 保存する値);
//変数を取得する
値=EditorUserSettings.GetConfigValue (キー文字列);

 

 文字列型のみ受付する、かなりシンプルな関数です。これで保存した値は、プロジェクトの中で共通して使用することができます。

欠点としては、値を一覧で取得したり、まとめて取るなどが出来ないこと、そのため管理をきっちりしないとゴミデータがたまります。そして、すべて文字列型になるので、元々何型だったのかも管理しておかないと、取得時に困ることになります。そして、なぜかググっても値の削除関数が見つかりませんでした。

ちょっと使い勝手が悪いので、使うところは限定したほうがよさそうです。

 

ちなみにデータはこのファイルに保存されるとのこと。

Library/EditorUserSettings.asset 

また、値はバイナリ化されるようです。

 

保存するときの値

SetConfigValue の値には文字列しか入れられません。

以下の方法でint型やfloat型をはじめ各種変数を文字列型に変換することができます。

変数.ToString();

 

取得するときの戻り値

逆に、値を取得する時は文字列型しかこないので、各種の型に変換しないといけません。

//文字列型からInt型に変換
int ivalue = int.Parse(str);
//文字列型からbool型に変換
bool bvalue = bool.Parse(str);