123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEditor;
- namespace YooAsset.Editor
- {
- public class SettingLoader
- {
- /// <summary>
- /// 加载相关的配置文件
- /// </summary>
- public static TSetting LoadSettingData<TSetting>() where TSetting : ScriptableObject
- {
- var settingType = typeof(TSetting);
- var guids = AssetDatabase.FindAssets($"t:{settingType.Name}");
- if (guids.Length == 0)
- {
- Debug.LogWarning($"Create new {settingType.Name}.asset");
- var setting = ScriptableObject.CreateInstance<TSetting>();
- string filePath = $"Assets/{settingType.Name}.asset";
- AssetDatabase.CreateAsset(setting, filePath);
- AssetDatabase.SaveAssets();
- AssetDatabase.Refresh();
- return setting;
- }
- else
- {
- if (guids.Length != 1)
- {
- foreach (var guid in guids)
- {
- string path = AssetDatabase.GUIDToAssetPath(guid);
- Debug.LogWarning($"Found multiple file : {path}");
- }
- throw new System.Exception($"Found multiple {settingType.Name} files !");
- }
- string filePath = AssetDatabase.GUIDToAssetPath(guids[0]);
- var setting = AssetDatabase.LoadAssetAtPath<TSetting>(filePath);
- return setting;
- }
- }
- }
- }
|