| 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;
 
- 			}
 
- 		}
 
- 	}
 
- }
 
 
  |