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<NewBieGuideScriptableObject> 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<NewBieGuideScriptableObject>(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<NewBieGuideScriptableObject>(assetPath);
|
}
|
|
if (config == null)
|
{
|
Debug.LogErrorFormat("ScriptableObjectLoader.LoadSoNewBieGuideStepAsync() => 加载不到资源: {0}.", _id);
|
}
|
|
return config;
|
}
|
|
|
}
|