From 3f2cd27c5dfb3b450245bf1a37fc1b3414031c7c Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期三, 11 二月 2026 11:03:58 +0800
Subject: [PATCH] 小游戏适配 资源系统改造

---
 Main/System/Sound/SoundPlayer.cs |   29 +++++++++++++++++++++++++++++
 1 files changed, 29 insertions(+), 0 deletions(-)

diff --git a/Main/System/Sound/SoundPlayer.cs b/Main/System/Sound/SoundPlayer.cs
index 25c8175..5d7c388 100644
--- a/Main/System/Sound/SoundPlayer.cs
+++ b/Main/System/Sound/SoundPlayer.cs
@@ -92,6 +92,22 @@
         Debug.Log("CreateSoundPlayer");
     }
 
+    public static async UniTask CreateSoundPlayerAsync()
+    {
+        if (m_Instance != null)
+        {
+            return;
+        }
+
+        var prefab = await BuiltInLoader.LoadPrefabAsync("SoundPlayer");
+        var gameObject = GameObject.Instantiate(prefab);
+        m_Instance = gameObject.GetComponent<SoundPlayer>();
+        m_Instance.name = "SoundPlayer";
+        m_Instance.SetActive(true);
+        DontDestroyOnLoad(gameObject);
+        Debug.Log("CreateSoundPlayer");
+    }
+
     public void PlayBackGroundMusic(int _audioId)
     {
         if (_audioId <= 0)
@@ -177,7 +193,9 @@
                 if (key != _exclude)
                 {
                     var config = AudioConfig.Get(key);
+                    #pragma warning disable CS0618 // Obsolete 鈥� sync legacy unload
                     ResManager.Instance.UnloadAsset("Audio/" + config.Folder, config.Audio);
+                    #pragma warning restore CS0618
                 }
             }
 
@@ -196,6 +214,7 @@
     public async UniTask PlayUIAudioDelay(int _audioId)
     {
         await UniTask.Delay(1);
+        if (this == null) return; // destroyed during await
         PlayUIAudio(_audioId);
     }
 
@@ -371,6 +390,16 @@
        }
     }
 
+    public async UniTask PlayLoginMusicAsync()
+    {
+        var loginMusic = await BuiltInLoader.LoadMusicAsync("login");
+        if (this == null) return;
+        if (!m_MusicAudioSource.isPlaying || m_MusicAudioSource.clip != loginMusic)
+        {
+            StartCoroutine(Co_BackGroundMusicFadeOutIn(loginMusic, false));
+        }
+    }
+
     //private void LateUpdate()
     //{
     //    if (CameraController.Instance != null && CameraController.Instance.CameraObject != null)

--
Gitblit v1.8.0