Beispiel #1
0
        private void LoadController(GameObject prefab, AudioRequest request, AudioControllerCallback finishCallback)
        {
            AudioController component;

            if (m_additionalControllers.TryGetValue(request.CategoryName, out component) && component != null)
            {
                request._UpdateReady(component);
                if (request.CategoryName == m_MainControllerName)
                {
                    m_mainController = component;
                }
                ExecuteCallback(ref finishCallback, request);
                return;
            }
            component = prefab.GetComponent <AudioController>();
            if (component == null)
            {
                if (request.CategoryName == m_MainControllerName)
                {
                    m_mainControllerLoadError = true;
                }
                Debug.LogError("AudioManager: GameObject has no AudioController script attached!\n" + request.CategoryName);
                ExecuteCallback(ref finishCallback, request);
                return;
            }
            if (component.isSingletonObject && request.CategoryName != m_MainControllerName)
            {
                if (request.CategoryName == m_MainControllerName)
                {
                    m_mainControllerLoadError = true;
                }
                Debug.LogError("AudioManager: AudioController is not set to be an additional AuidoController!\n" + request.CategoryName);
                ExecuteCallback(ref finishCallback, request);
                return;
            }
            if (component.Persistent && request.CategoryName != m_MainControllerName)
            {
                Debug.LogWarning("AudioManager: AudioController is set persistent, MEMORY LEAK?\n" + request.CategoryName);
            }
            GameObject gameObject = Helper.Instantiate <GameObject>(prefab);

            component = gameObject.GetComponent <AudioController>();
            request._UpdateReady(component);
            if (request.CategoryName == m_MainControllerName)
            {
                m_mainController = component;
            }
            if (!request.IsVolumeSetManually)
            {
                AudioHelper.SetVolumeForCtrl(SoundConfigManager.Settings.SFXVolume, SoundConfigManager.Settings.PartyBarkVolume, component);
            }
            m_additionalControllers[request.CategoryName] = component;
            ExecuteCallback(ref finishCallback, request);
            UnloadAudioBundle(request.CategoryName, false);
        }
Beispiel #2
0
 private static void ExecuteCallback(ref AudioControllerCallback finishCallback, AudioRequest request)
 {
     if (finishCallback != null)
     {
         try
         {
             finishCallback(request);
         }
         catch (Exception exception)
         {
             Debug.LogException(exception);
         }
         finishCallback = null;
     }
 }
Beispiel #3
0
        public AudioRequest Request(String categoryName, Int32 priority, Boolean volumeSetManually, AudioControllerCallback finishCallback)
        {
            AudioRequest audioRequest = new AudioRequest(this, categoryName, priority, volumeSetManually);

            if (categoryName == null)
            {
                ExecuteCallback(ref finishCallback, audioRequest);
                return(audioRequest);
            }
            AudioController audioController;

            if (m_additionalControllers.TryGetValue(categoryName, out audioController) && audioController != null)
            {
                audioRequest._UpdateReady(audioController);
                ExecuteCallback(ref finishCallback, audioRequest);
                return(audioRequest);
            }
            RequestData userToken = new RequestData
            {
                FinishCallback = finishCallback,
                UserRequest    = audioRequest
            };
            AssetRequest assetRequest = null;

            if (CheckLoad(categoryName))
            {
                if (LegacyLogic.Instance.ModController.InModMode)
                {
                    assetRequest = AssetBundleManagers.Instance.Mod.RequestAsset(categoryName, priority, new AssetRequestCallback(OnAudioBundleLoaded), userToken);
                }
                if (assetRequest == null)
                {
                    assetRequest = AssetBundleManagers.Instance.Main.RequestAsset(categoryName, priority, new AssetRequestCallback(OnAudioBundleLoaded), userToken);
                }
            }
            else
            {
                Debug.Log("skip load audio category " + categoryName);
            }
            if (assetRequest == null)
            {
                Debug.LogError("Error load unknow assetbundle AudioController name?\n" + categoryName);
                ExecuteCallback(ref finishCallback, audioRequest);
            }
            return(audioRequest);
        }
Beispiel #4
0
 public AudioRequest Request(String categoryName, Int32 priority, AudioControllerCallback finishCallback)
 {
     return(Request(categoryName, priority, false, finishCallback));
 }
Beispiel #5
0
 public AudioRequest RequestByAudioID(String audioID, Int32 priority, Boolean volumeSetManually, AudioControllerCallback finishCallback)
 {
     return(Request(m_CategoryMap.FindControllerName(audioID), priority, volumeSetManually, finishCallback));
 }
Beispiel #6
0
 public AudioRequest RequestByAudioID(String audioID, Int32 priority, AudioControllerCallback finishCallback)
 {
     return(RequestByAudioID(audioID, priority, false, finishCallback));
 }