// Inspector 表示 public override void OnInspectorGUI() { AssetCatalog t = this.target as AssetCatalog; Dictionary <string, AssetCatalog.SettingParam> dic = t.editParamDic; GUILayout.Space(5f); // Prefab 設定 System.Array enumArray = System.Enum.GetValues(typeof(U)); int objectCount = enumArray.Length; for (int i = 0; i < objectCount; ++i) { string key = enumArray.GetValue(i).ToString(); AssetCatalog.SettingParam param = dic[key]; GUILayout.BeginHorizontal(); GUIContent content = new GUIContent(i.ToString("D3") + " " + key, "Asset 指定"); dic[key].origin = EditorGUILayout.ObjectField(content, param.origin, typeof(T), false, GUILayout.MinWidth(250f)) as T; dic[key].genCount = EditorGUILayout.IntField(param.genCount, GUILayout.MaxWidth(100f)); GUILayout.EndHorizontal(); } if (GUI.changed || (objectCount != t.GetCatalogCount())) { t.UpdateSerializedList <U>(); EditorUtility.SetDirty(t); } }
// 有効時 void OnEnable() { AssetCatalog t = this.target as AssetCatalog; if (t != null) { bool changed = t.CreateDictionary <U>(); // enum が増減していたら変更されてくる if (changed) { t.UpdateSerializedList <U>(); EditorUtility.SetDirty(t); } } }