Exemple #1
0
        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);
        }
Exemple #2
0
        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());
                }
            }
        }