From 1ad03cc2f91d75e80fc3dc42e2ac1fadc9a2bfec Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期三, 11 二月 2026 16:10:43 +0800
Subject: [PATCH] Merge branch 'master' into h5version
---
Main/ResModule/BuiltInLoader.cs | 141 +++++++++++++++++++++++++++++++++++------------
1 files changed, 105 insertions(+), 36 deletions(-)
diff --git a/Main/ResModule/BuiltInLoader.cs b/Main/ResModule/BuiltInLoader.cs
index 3dad5ea..2c69c14 100644
--- a/Main/ResModule/BuiltInLoader.cs
+++ b/Main/ResModule/BuiltInLoader.cs
@@ -2,6 +2,9 @@
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.U2D;
+using Cysharp.Threading.Tasks;
+using System.Threading;
+using ProjSG.Resource;
public class BuiltInLoader
{
@@ -14,12 +17,13 @@
public static Sprite LoadSprite(string name)
{
Sprite sprite = null;
- if (AssetSource.builtInFromEditor)
+ if (!AssetSource.isUseAssetBundle)
{
#if UNITY_EDITOR
- if (excludePngs.Contains(StringUtility.Contact(name, SPRITE_EXTENSION)))
+ if (excludePngs.Contains(StringUtility.Concat(name, SPRITE_EXTENSION)))
{
- var path = StringUtility.Contact("Assets/ResourcesOut/BuiltIn/Sprites/", name, SPRITE_EXTENSION);
+ var path = StringUtility.Concat("Assets/ResourcesOut/BuiltIn/Sprites/", name, SPRITE_EXTENSION);
+ path = System.Text.RegularExpressions.Regex.Replace(path, @"[\p{C}]", "");
sprite = UnityEditor.AssetDatabase.LoadAssetAtPath<Sprite>(path);
}
else
@@ -31,13 +35,13 @@
}
else
{
- //var assetInfo = new AssetInfo("builtin/sprites", "sprites");
- //var spriteAtlas = AssetBundleUtility.Instance.Sync_LoadAsset(assetInfo, typeof(SpriteAtlas)) as SpriteAtlas;
- //sprite = spriteAtlas?.GetSprite(name);
//if (sprite == null)
{
- var assetInfo = new AssetInfo("builtin/sprites", name);
- sprite = AssetBundleUtility.Instance.Sync_LoadAsset(assetInfo, typeof(Sprite)) as Sprite;
+ // US1: Route through YooAssetService sync wrapper
+ var path = StringUtility.Concat("Assets/ResourcesOut/BuiltIn/Sprites/", name, SPRITE_EXTENSION);
+ #pragma warning disable CS0612
+ sprite = YooAssetService.Instance.LoadAssetSync<Sprite>(path);
+ #pragma warning restore CS0612
}
}
@@ -52,17 +56,20 @@
public static GameObject LoadPrefab(string name)
{
GameObject prefab = null;
- if (AssetSource.builtInFromEditor)
+ if (!AssetSource.isUseAssetBundle)
{
#if UNITY_EDITOR
- var path = StringUtility.Contact("Assets/ResourcesOut/BuiltIn/Prefabs/", name, PREFAB_EXTENSION);
+ var path = StringUtility.Concat("Assets/ResourcesOut/BuiltIn/Prefabs/", name, PREFAB_EXTENSION);
prefab = UnityEditor.AssetDatabase.LoadAssetAtPath<GameObject>(path);
#endif
}
else
{
- var assetInfo = new AssetInfo("builtin/prefabs", name);
- prefab = AssetBundleUtility.Instance.Sync_LoadAsset(assetInfo) as GameObject;
+ // US1: Route through YooAssetService sync wrapper
+ var path = StringUtility.Concat("Assets/ResourcesOut/BuiltIn/Prefabs/", name, PREFAB_EXTENSION);
+ #pragma warning disable CS0612
+ prefab = YooAssetService.Instance.LoadAssetSync<GameObject>(path);
+ #pragma warning restore CS0612
}
if (prefab == null)
@@ -75,26 +82,26 @@
public static void UnLoadPrefab(string name)
{
- if (!AssetSource.builtInFromEditor)
- {
- AssetBundleUtility.Instance.UnloadAsset("builtin/prefabs", name);
- }
+ // US1: No-op. YooAsset manages asset lifecycle via handle-based release.
}
public static AudioClip LoadMusic(string name)
{
AudioClip audioClip = null;
- if (AssetSource.builtInFromEditor)
+ if (!AssetSource.isUseAssetBundle)
{
#if UNITY_EDITOR
- var path = StringUtility.Contact("Assets/ResourcesOut/BuiltIn/Musics/", name, AUDIO_EXTENSION);
+ var path = StringUtility.Concat("Assets/ResourcesOut/BuiltIn/Musics/", name, ".mp3");
audioClip = UnityEditor.AssetDatabase.LoadAssetAtPath<AudioClip>(path);
#endif
}
else
{
- var assetInfo = new AssetInfo("builtin/musics", name);
- audioClip = AssetBundleUtility.Instance.Sync_LoadAsset(assetInfo) as AudioClip;
+ // US1: Route through YooAssetService sync wrapper
+ var path = StringUtility.Concat("Assets/ResourcesOut/BuiltIn/Musics/", name, ".mp3");
+ #pragma warning disable CS0612
+ audioClip = YooAssetService.Instance.LoadAssetSync<AudioClip>(path);
+ #pragma warning restore CS0612
}
if (audioClip == null)
@@ -108,17 +115,20 @@
public static AnimationClip LoadAnimationClip(string name)
{
AnimationClip clip = null;
- if (AssetSource.builtInFromEditor)
+ if (!AssetSource.isUseAssetBundle)
{
#if UNITY_EDITOR
- var path = StringUtility.Contact("Assets/ResourcesOut/BuiltIn/AnimationClips/", name, ".anim");
+ var path = StringUtility.Concat("Assets/ResourcesOut/BuiltIn/AnimationClips/", name, ".anim");
clip = UnityEditor.AssetDatabase.LoadAssetAtPath<AnimationClip>(path);
#endif
}
else
{
- var assetInfo = new AssetInfo("builtin/animationclips", name);
- clip = AssetBundleUtility.Instance.Sync_LoadAsset(assetInfo) as AnimationClip;
+ // US1: Route through YooAssetService sync wrapper
+ var path = StringUtility.Concat("Assets/ResourcesOut/BuiltIn/AnimationClips/", name, ".anim");
+ #pragma warning disable CS0612
+ clip = YooAssetService.Instance.LoadAssetSync<AnimationClip>(path);
+ #pragma warning restore CS0612
}
if (clip == null)
@@ -132,17 +142,20 @@
public static Material LoadMaterial(string name)
{
Material material = null;
- if (AssetSource.builtInFromEditor)
+ if (!AssetSource.isUseAssetBundle)
{
#if UNITY_EDITOR
- var path = StringUtility.Contact("Assets/ResourcesOut/BuiltIn/Materials/", name, ".mat");
+ var path = StringUtility.Concat("Assets/ResourcesOut/BuiltIn/Materials/", name, ".mat");
material = UnityEditor.AssetDatabase.LoadAssetAtPath<Material>(path);
#endif
}
else
{
- var assetInfo = new AssetInfo("builtin/materials", name);
- material = AssetBundleUtility.Instance.Sync_LoadAsset(assetInfo) as Material;
+ // US1: Route through YooAssetService sync wrapper
+ var path = StringUtility.Concat("Assets/ResourcesOut/BuiltIn/Materials/", name, ".mat");
+ #pragma warning disable CS0612
+ material = YooAssetService.Instance.LoadAssetSync<Material>(path);
+ #pragma warning restore CS0612
}
if (material == null)
@@ -157,10 +170,10 @@
{
T config = null;
- if (AssetSource.builtInFromEditor)
+ if (!AssetSource.isUseAssetBundle)
{
#if UNITY_EDITOR
- var resourcePath = StringUtility.Contact(ResourcesPath.ResourcesOutAssetPath,
+ var resourcePath = StringUtility.Concat(ResourcesPath.ResourcesOutAssetPath,
"BuiltIn/ScriptableObjects/", name, ".asset");
config = UnityEditor.AssetDatabase.LoadAssetAtPath<T>(resourcePath);
@@ -168,8 +181,12 @@
}
else
{
- var assetInfo = new AssetInfo("builtin/scriptableobjects", name);
- config = AssetBundleUtility.Instance.Sync_LoadAsset(assetInfo) as T;
+ // US1: Route through YooAssetService sync wrapper
+ var path = StringUtility.Concat(ResourcesPath.ResourcesOutAssetPath,
+ "BuiltIn/ScriptableObjects/", name, ".asset");
+ #pragma warning disable CS0612
+ config = YooAssetService.Instance.LoadAssetSync<T>(path);
+ #pragma warning restore CS0612
}
if (config == null)
@@ -183,18 +200,22 @@
public static Font LoadFont(string fontName)
{
Font font = null;
- if (AssetSource.builtInFromEditor)
+ if (!AssetSource.isUseAssetBundle)
{
#if UNITY_EDITOR
- var path = StringUtility.Contact(ResourcesPath.ResourcesOutAssetPath,
+ var path = StringUtility.Concat(ResourcesPath.ResourcesOutAssetPath,
"BuiltIn/Font/", fontName, ".ttf");
font = UnityEditor.AssetDatabase.LoadAssetAtPath<Font>(path);
#endif
}
else
{
- var assetInfo = new AssetInfo("builtin/font", fontName);
- font = AssetBundleUtility.Instance.Sync_LoadAsset(assetInfo, typeof(Font)) as Font;
+ // US1: Route through YooAssetService sync wrapper
+ var path = StringUtility.Concat(ResourcesPath.ResourcesOutAssetPath,
+ "BuiltIn/Font/", fontName, ".ttf");
+ #pragma warning disable CS0612
+ font = YooAssetService.Instance.LoadAssetSync<Font>(path);
+ #pragma warning restore CS0612
}
if (font == null)
@@ -205,5 +226,53 @@
return font;
}
+ // ====================================================================
+ // US2: Async UniTask variants
+ // ====================================================================
+
+ public static async UniTask<Sprite> LoadSpriteAsync(string name, CancellationToken ct = default)
+ {
+ var path = StringUtility.Concat("Assets/ResourcesOut/BuiltIn/Sprites/", name, SPRITE_EXTENSION);
+ return await YooAssetService.Instance.LoadAssetAsync<Sprite>(path, ct: ct);
+ }
+
+ 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,
+ "BuiltIn/Font/", fontName, ".ttf");
+ return await YooAssetService.Instance.LoadAssetAsync<Font>(path, ct: ct);
+ }
+
}
--
Gitblit v1.8.0