using System; using System.IO; using UnityEditor; using UnityEngine; public static class ConfigHelper { public static T GetConfig() where T : Config { return Resources.Load($"GameConfig/{typeof(T).Name}"); } #if UNITY_EDITOR public static T GetOrCreateConfig() where T : Config { var config = GetConfig(); if (config == null) { config = ScriptableObject.CreateInstance(); string path = "Assets/Resources/GameConfig/"; if (!Directory.Exists(path)) Directory.CreateDirectory(path); AssetDatabase.CreateAsset(config, $"{path}/{typeof(T).Name}.asset"); AssetDatabase.SaveAssets(); } return config; } #endif }