using UnityEngine; using System; using Cysharp.Threading.Tasks; using ProjSG.Resource; #if UNITY_EDITOR using UnityEditor; #endif public class ScriptableObjectLoader { public const string bundleName = "config/scriptableobject"; public const string SoNewBieGuide_Suffix = "NewBieGuideStep_"; // 已移除同步加载接口,强制业务全部走异步API。 // public static NewBieGuideScriptableObject LoadSoNewBieGuideStep(int _id) => throw new NotSupportedException("同步加载已禁用,请使用异步接口"); public static async UniTask LoadSoNewBieGuideStepAsync(int _id) { NewBieGuideScriptableObject config = null; if (!AssetSource.isUseAssetBundle) { #if UNITY_EDITOR var resourcePath = StringUtility.Concat(ResourcesPath.ResourcesOutAssetPath, "ScriptableObject/NewBieGuide/", SoNewBieGuide_Suffix, _id.ToString(), ".asset"); config = AssetDatabase.LoadAssetAtPath(resourcePath); #endif } else { var assetName = StringUtility.Concat(SoNewBieGuide_Suffix, _id.ToString()); var assetPath = StringUtility.Concat("Assets/ResourcesOut/ScriptableObject/NewBieGuide/", assetName); config = await YooAssetService.Instance.LoadAssetAsync(assetPath); } if (config == null) { Debug.LogErrorFormat("ScriptableObjectLoader.LoadSoNewBieGuideStepAsync() => 加载不到资源: {0}.", _id); } return config; } }