hch
2025-11-25 3a37b75b01bad95149689b8904fecda9e3b7acd9
0312 防范可能启动音乐报错问题
3个文件已修改
36 ■■■■■ 已修改文件
Main/Core/GameEngine/Launch/InitSettingTask.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Core/GameEngine/Launch/LaunchInHot.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Sound/SoundPlayer.cs 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Core/GameEngine/Launch/InitSettingTask.cs
@@ -13,7 +13,7 @@
    public override void Begin()
    {
        ShaderUtility.InitGlobalParams();
        SoundPlayer.CreateSoundPlayer();
        // SoundPlayer.CreateSoundPlayer();
        //SoundPlayer.Instance.PlayLoginMusic();
        SystemSetting.Instance.SetSoundVolume(SystemSetting.Instance.GetSoundVolume());
Main/Core/GameEngine/Launch/LaunchInHot.cs
@@ -25,6 +25,7 @@
        System.Net.ServicePointManager.DefaultConnectionLimit = 100;//设置http最大连接数
        Application.backgroundLoadingPriority = ThreadPriority.High;
        Screen.sleepTimeout = SleepTimeout.NeverSleep;
        SoundPlayer.Instance.Init();
        SDKUtils.Instance.Init();  //原sdk接口
        if (!AssetSource.isUseAssetBundle)
Main/System/Sound/SoundPlayer.cs
@@ -12,17 +12,23 @@
    static readonly List<int> commonUseAudioSet = new List<int>() { defaultClickPositiveAudio, defaultClickNegativeAudio, 3, 4 };
    static SoundPlayer m_Instance = null;
    private static readonly object m_Lock = new object();
    public static SoundPlayer Instance
    {
        get
        {
            if (m_Instance == null)
            {
                CreateSoundPlayer();
                lock (m_Lock)
                {
                    if (m_Instance == null)
                    {
                        CreateSoundPlayer();
                    }
                }
            }
            return m_Instance;
        }
    }
    [SerializeField] AudioSource m_MusicAudioSource;
@@ -34,6 +40,19 @@
    Dictionary<int, AudioClip> commonUseAudioClipDict = new Dictionary<int, AudioClip>();
    Dictionary<int, AudioClip> musicAudioClipDict = new Dictionary<int, AudioClip>();
    void Awake()
    {
        if (m_Instance == null)
        {
            m_Instance = this;
            DontDestroyOnLoad(gameObject);
        }
        else if (m_Instance != this)
        {
            Destroy(gameObject);
        }
    }
    public event Action<bool> muteEvent;
    bool m_Mute = false;
@@ -52,8 +71,18 @@
        }
    }
    public void Init()
    {
        //初始化用
    }
    public static void CreateSoundPlayer()
    {
        if (m_Instance != null)
        {
            return;
        }
        var gameObject = GameObject.Instantiate(BuiltInLoader.LoadPrefab("SoundPlayer"));
        m_Instance = gameObject.GetComponent<SoundPlayer>();
        m_Instance.name = "SoundPlayer";