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); }
private static void ExecuteCallback(ref AudioControllerCallback finishCallback, AudioRequest request) { if (finishCallback != null) { try { finishCallback(request); } catch (Exception exception) { Debug.LogException(exception); } finishCallback = null; } }
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); }
public AudioRequest Request(String categoryName, Int32 priority, AudioControllerCallback finishCallback) { return(Request(categoryName, priority, false, finishCallback)); }
public AudioRequest RequestByAudioID(String audioID, Int32 priority, Boolean volumeSetManually, AudioControllerCallback finishCallback) { return(Request(m_CategoryMap.FindControllerName(audioID), priority, volumeSetManually, finishCallback)); }
public AudioRequest RequestByAudioID(String audioID, Int32 priority, AudioControllerCallback finishCallback) { return(RequestByAudioID(audioID, priority, false, finishCallback)); }