概要
using System;
using UnityEditor;
using UnityEngine;
[Serializable]
public sealed class Data
{
public int Id;
public string Name;
}
public sealed class Example : EditorWindow
{
[MenuItem( "Tools/Open" )]
private static void Open()
{
GetWindow<Example>();
}
private void OnGUI()
{
var key = "hoge";
var json1 = EditorUserSettings.GetConfigValue( key );
var data = JsonUtility.FromJson<Data>( json1 ) ?? new Data();
data.Id = EditorGUILayout.IntField( "Id", data.Id );
data.Name = EditorGUILayout.TextField( "Name", data.Name );
var json2 = JsonUtility.ToJson( data );
EditorUserSettings.SetConfigValue( key, json2 );
}
}
- EditorUserSettings.SetConfigValue を使用することで
Unity プロジェクトに独自のデータを保存できます
- EditorUserSettings.GetConfigValue で読み込めます
- EditorPrefs はプロジェクト外(レジストリ)にデータが保存されますが
EditorUserSettings.SetConfigValue はプロジェクトにデータが保存されます
- そのため、他のプロジェクトでも使用したいデータは EditorPrefs で保存、
このプロジェクトでのみ使用するデータは EditorUserSettings.SetConfigValue で保存、
という使い分けが可能です
- EditorUserSettings.SetConfigValue で保存したデータは
「Library/EditorUserSettings.asset」に保存されます
- そのため、Library フォルダを削除すると保存したデータは消えます