yyl
2026-03-26 1ab047b5fdd933c38ba0519ec2e83a44512ea8d7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
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<string> excludePngs = new List<string>() { "Launch_1.png", "Launch_2.png", "Launch_3.png", "LoginBackGround.png", "TB_DL_Logo.png" };
 
    // ...existing code...
 
    public static async UniTask<Sprite> LoadSpriteAsync(string name, CancellationToken ct = default)
    {
        var path = StringUtility.Concat("Assets/ResourcesOut/BuiltIn/Sprites/", name, SPRITE_EXTENSION);
        var sprite = await YooAssetService.Instance.LoadAssetAsync<Sprite>(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<GameObject> LoadPrefabAsync(string name, CancellationToken ct = default)
    {
        var path = StringUtility.Concat("Assets/ResourcesOut/BuiltIn/Prefabs/", name, PREFAB_EXTENSION);
        return await YooAssetService.Instance.LoadAssetAsync<GameObject>(path, ct: ct);
    }
 
    public static async UniTask<AudioClip> LoadMusicAsync(string name, CancellationToken ct = default)
    {
        var path = StringUtility.Concat("Assets/ResourcesOut/BuiltIn/Musics/", name, ".mp3");
        return await YooAssetService.Instance.LoadAssetAsync<AudioClip>(path, ct: ct);
    }
 
    public static async UniTask<AnimationClip> LoadAnimationClipAsync(string name, CancellationToken ct = default)
    {
        var path = StringUtility.Concat("Assets/ResourcesOut/BuiltIn/AnimationClips/", name, ".anim");
        return await YooAssetService.Instance.LoadAssetAsync<AnimationClip>(path, ct: ct);
    }
 
    public static async UniTask<Material> LoadMaterialAsync(string name, CancellationToken ct = default)
    {
        var path = StringUtility.Concat("Assets/ResourcesOut/BuiltIn/Materials/", name, ".mat");
        return await YooAssetService.Instance.LoadAssetAsync<Material>(path, ct: ct);
    }
 
    public static async UniTask<T> LoadScriptableObjectAsync<T>(string name, CancellationToken ct = default) where T : ScriptableObject
    {
        var path = StringUtility.Concat(ResourcesPath.ResourcesOutAssetPath,
                                       "BuiltIn/ScriptableObjects/", name, ".asset");
        return await YooAssetService.Instance.LoadAssetAsync<T>(path, ct: ct);
    }
 
    public static async UniTask<Font> LoadFontAsync(string fontName, CancellationToken ct = default)
    {
        var path = StringUtility.Concat(ResourcesPath.ResourcesOutAssetPath,
                                       "Font/", fontName, ".ttf");
        return await YooAssetService.Instance.LoadAssetAsync<Font>(path, ct: ct);
    }
 
 
}