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