using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.U2D; using Cysharp.Threading.Tasks; using System.Threading; using ProjSG.Resource; public class BuiltInLoader { readonly static string PREFAB_EXTENSION = ".prefab"; readonly static string SPRITE_EXTENSION = ".png"; readonly static string AUDIO_EXTENSION = ".wav"; readonly static List excludePngs = new List() { "Launch_1.png", "Launch_2.png", "Launch_3.png", "LoginBackGround.png", "TB_DL_Logo.png" }; // ...existing code... public static async UniTask LoadSpriteAsync(string name, CancellationToken ct = default) { var path = StringUtility.Concat("Assets/ResourcesOut/BuiltIn/Sprites/", name, SPRITE_EXTENSION); var sprite = await YooAssetService.Instance.LoadAssetAsync(path, ct: ct); #if UNITY_WEBGL if (sprite == null) Debug.LogWarning($"[BuiltInLoader][WebGL-Diag] Sprite load returned NULL: path={path}"); #endif return sprite; } public static async UniTask LoadPrefabAsync(string name, CancellationToken ct = default) { var path = StringUtility.Concat("Assets/ResourcesOut/BuiltIn/Prefabs/", name, PREFAB_EXTENSION); return await YooAssetService.Instance.LoadAssetAsync(path, ct: ct); } public static async UniTask LoadMusicAsync(string name, CancellationToken ct = default) { var path = StringUtility.Concat("Assets/ResourcesOut/BuiltIn/Musics/", name, ".mp3"); return await YooAssetService.Instance.LoadAssetAsync(path, ct: ct); } public static async UniTask LoadAnimationClipAsync(string name, CancellationToken ct = default) { var path = StringUtility.Concat("Assets/ResourcesOut/BuiltIn/AnimationClips/", name, ".anim"); return await YooAssetService.Instance.LoadAssetAsync(path, ct: ct); } public static async UniTask LoadMaterialAsync(string name, CancellationToken ct = default) { var path = StringUtility.Concat("Assets/ResourcesOut/BuiltIn/Materials/", name, ".mat"); return await YooAssetService.Instance.LoadAssetAsync(path, ct: ct); } public static async UniTask LoadScriptableObjectAsync(string name, CancellationToken ct = default) where T : ScriptableObject { var path = StringUtility.Concat(ResourcesPath.ResourcesOutAssetPath, "BuiltIn/ScriptableObjects/", name, ".asset"); return await YooAssetService.Instance.LoadAssetAsync(path, ct: ct); } public static async UniTask LoadFontAsync(string fontName, CancellationToken ct = default) { var path = StringUtility.Concat(ResourcesPath.ResourcesOutAssetPath, "Font/", fontName, ".ttf"); return await YooAssetService.Instance.LoadAssetAsync(path, ct: ct); } }