public T GetConfig <T>() where T : GameConfigAsset { Type config_type = typeof(T); GameConfigAsset config_to_get = null; configs.TryGetValue(config_type, out config_to_get); return(config_to_get as T); }
public override void OnInspectorGUI() { _config = target as GameConfig; var serializedConfig = new SerializedObject(_config); var assetProp = serializedConfig.FindProperty("_asset"); EditorGUILayout.PropertyField(assetProp); if (assetProp.objectReferenceValue) { _asset = (GameConfigAsset)assetProp.objectReferenceValue; _serializedAsset = new SerializedObject(_asset); DrawProperties(_asset.GetType()); EditorUtility.SetDirty(_asset); } serializedConfig.ApplyModifiedProperties(); if (GUI.changed) { EditorUtility.SetDirty(_config); if (Application.isPlaying == false) { EditorSceneManager.MarkSceneDirty(SceneManager.GetActiveScene()); } } }