fix: AudioManager.I→FindObjectOfType避免Awake执行顺序导致I为null

PageController可能在AudioManager.Awake前Start, 导致I为null
改用FindObjectOfType在调用时查找
This commit is contained in:
yangbear
2026-07-01 22:39:36 +08:00
parent b4415dea4c
commit 8f05587473
+4 -4
View File
@@ -121,8 +121,8 @@ public class PageController : MonoBehaviour
if (_uiManager != null)
_uiManager.enabled = (page == Page.Experiment);
if (page == Page.Home) AudioManager.I.PlayHomeBg(); // 背景音乐: 首页播 homeBg, 选固定方式时停, 实验启动时播 experimentBg
if (page == Page.Home) AudioManager.I.PlayHomeBg();
if (page == Page.Home) FindObjectOfType<AudioManager>()?.PlayHomeBg(); // 背景音乐: 首页播 homeBg, 选固定方式时停, 实验启动时播 experimentBg
if (page == Page.Home) FindObjectOfType<AudioManager>()?.PlayHomeBg();
Debug.Log($"PageController(编辑器预览): 切换到 [{page}]");
}
#endif
@@ -224,7 +224,7 @@ public class PageController : MonoBehaviour
Debug.Log($"PageController: GameManager 已设置 Mode=[{gm.CurrentMode}] Fixation=[{gm.CurrentFixationMethod}]");
// 隐藏所有UI面板,准备播放片头动画
AudioManager.I.StopBgMusic();
FindObjectOfType<AudioManager>()?.StopBgMusic();
HideAllPages();
// 找到 OpeningFlowController 播放片头动画
@@ -267,7 +267,7 @@ public class PageController : MonoBehaviour
{
Debug.Log("PageController: [ActivateExperimentObjects] 显示实验物件");
AudioManager.I.PlayExperimentBg();
FindObjectOfType<AudioManager>()?.PlayExperimentBg();
var allObjects = FindObjectsOfType<GameObject>(true);
foreach (var go in allObjects)