public void Initialize(PYAudioTags audioTag) { //_currentAudioTag = audioTag; _triggersAction.Clear(); _queueTriggers.Clear(); AudioSource.OnPlaying += AudioSource_onPlaying; AudioSource.OnCompleted += AudioSource_onCompleted; }
public PYAudioSource StartBundleAudio(PYAudioTags audioTag, PYGroupTag group) { if (audioTag.ToString().StartsWith("B_")) { return(StartBundleAudioClip(PYBundleManager.Localization.GetAsset <AudioClip>(audioTag.ToString().Replace("B_", "")), audioTag, group)); } return(StartAudio(audioTag)); }
public void Stop(PYAudioTags audio) { PYAudioSource audioSource = GetPYAudioSource(audio); if (audioSource == null) { return; } audioSource.Stop(); }
/// <summary> /// Use this to play audios from a specific bundleManager /// </summary> /// <param name="bundleManager">From which bundleManager the audio will be fetch</param> /// <param name="audioTag">Use PYAudioTags that start with a B_</param> /// <param name="group">In which group/channel this audio will be played</param> /// <returns></returns> public PYAudioSource StartAudio(PYBundleSubManager bundleManager, PYAudioTags audioTag, PYGroupTag group) { PYAudioSource audioSource = GetPYAudioSource(audioTag); if (audioSource != null && audioSource.Track.GroupTag == PYGroupTag.Voice) { return(audioSource); } return(StartAudio(audioTag, new AudioTrack(group, bundleManager.GetAsset <AudioClip>(audioTag.ToString().Replace("B_", ""))))); }
public void Stop(PYAudioTags audio, float fadeDuration) { PYAudioSource source = GetPYAudioSource(audio); if (source == null) { return; } source.Stop(fadeDuration); }
/// <summary> /// Use this to play bundleAudios from Localization folder /// </summary> /// <param name="audioTag">Use PYAudioTags that start with a B_</param> /// <param name="group">In which group/channel this audio will be played</param> /// <returns></returns> public PYAudioSource StartAudio(PYAudioTags audioTag, PYGroupTag group) { if (audioTag.ToString().StartsWith("B_")) { return(StartAudio(PYBundleManager.Localization, audioTag, group)); } else { return(StartAudio(audioTag, new AudioTrack(audioTag.ToString(), group, GetAudioTrack(audioTag).PathToClip))); } }
public bool RemoveTriggerAction(PYAudioTags audioTag, PYAudioTrigger.Trigger trigger) { if (_audioTriggers.ContainsKey(audioTag)) { return(_audioTriggers[audioTag].Remove(trigger)); } else { return(false); } }
public bool RemoveListenerPYAudio(PYAudioTags audioTag, PYAudioSource.EventListenerData listener) { if (_audioSourceActions.ContainsKey(audioTag)) { return(_audioSourceActions[audioTag].Remove(listener)); } else { return(false); } }
public PYAudioSource GetPYAudioSource(PYAudioTags audioTag) { for (int x = 0; x < _executingAudioSources.Count; x++) { if (_executingAudioSources[x].AudioTag == audioTag) { return(_executingAudioSources[x]); } } return(null); }
public void Resume(PYAudioTags audio) { PYAudioSource audioSource = GetPYAudioSource(audio); if (audioSource == null) { return; } audioSource.Resume(); }
private PYAudioSource StartBundleAudioClip(AudioClip audioClip, PYAudioTags audioTag, PYGroupTag group) { PYAudioSource audioSource = GetPYAudioSource(audioTag); if (audioSource != null && audioSource.Track.GroupTag == PYGroupTag.Voice) { return(audioSource); } return(StartAudio(audioTag, new AudioTrack(group, audioClip))); }
private static void PlayAudio(PYAudioTags tag, Action <PYAudioSource.PYAudioSourceEventData> callback = null, float delay = 0) { if (PYBundleManager.Instance != null) { PYAudioManager.Instance.StartAudio(tag, PYGroupTag.Voice).Delay(delay).Play(callback); } else { string tagString = tag.ToString().Replace("B_", "Voice_" + PlaytableWin32.Instance.Language.Replace("-", "") + "_"); PYAudioManager.Instance.StartAudio((PYAudioTags)Enum.Parse(typeof(PYAudioTags), tagString)).Delay(delay).Play(callback); } }
/// <summary> /// Use this when you need to play a AudioClip inside a group/channel /// </summary> /// <param name="audioClip">AudioClip to be played</param> /// <param name="group">In which group/channel this audio will be played</param> /// <returns></returns> public PYAudioSource StartAudio(AudioClip audioClip, PYGroupTag group) { PYAudioTags audioTag = (PYAudioTags)ConvertNameToTag(audioClip.name); PYAudioSource audioSource = GetPYAudioSource(audioTag); if (audioSource != null && audioSource.Track.GroupTag == PYGroupTag.Voice) { return(audioSource); } return(StartAudio(audioTag, new AudioTrack(group, audioClip))); }
/// <summary> /// Use this to play Resource audios /// </summary> /// <param name="audioTag">Use PYAudioTags that dont start with a B_</param> /// <returns></returns> public PYAudioSource StartAudio(PYAudioTags audioTag) { PYAudioSource audioSource = GetPYAudioSource(audioTag); if (audioSource != null && audioSource.Track.GroupTag == PYGroupTag.Voice) { return(audioSource); } AudioTrack track = (audioTag == PYAudioTags.None) ? new AudioTrack(audioTag.ToString(), PYGroupTag.Master, string.Empty) : GetAudioTrack(audioTag); return(StartAudio(audioTag, track)); }
public PYAudioSource.EventListenerData AddListenerPYAudio(PYAudioTags audioTag, PYAudioSource.EventsType type, Action <PYAudioSource.PYAudioSourceEventData> action) { if (!_audioSourceActions.ContainsKey(audioTag)) { _audioSourceActions.Add(audioTag, new List <PYAudioSource.EventListenerData>()); } _audioSourceActions[audioTag].Add(new PYAudioSource.EventListenerData() { Type = type, Action = action }); // Caso o audio já esteja rodando adicionamos a ação nele PYAudioSource audioSource = GetPYAudioSource(audioTag); if (audioSource) { audioSource.AddListinerToEvent(type, action); } return(_audioSourceActions[audioTag][_audioSourceActions[audioTag].Count - 1]); }
public PYAudioTrigger.Trigger AddTriggerAction(PYAudioTags audioTag, float time, Action action) { if (!_audioTriggers.ContainsKey(audioTag)) { _audioTriggers.Add(audioTag, new List <PYAudioTrigger.Trigger>()); } _audioTriggers[audioTag].Add(new PYAudioTrigger.Trigger() { Time = time, Action = action }); // Caso o audio já esteja rodando adicionamos o trigger nele PYAudioSource audioSource = GetPYAudioSource(audioTag); if (audioSource) { audioSource.AudioTrigger.AddTriggerAction(time, action); } return(_audioTriggers[audioTag][_audioTriggers[audioTag].Count - 1]); }
public void Initialize(PYAudioTags audioTag, PYAudioManager.AudioTrack track) { AudioTag = audioTag; Track = track; Group = PYAudioManager.Instance.Groups[Track.GroupTag]; if (_source == null) { _source = GetComponent <AudioSource>(); } _source.playOnAwake = false; _source.clip = Track.Clip; _source.loop = false; _source.mute = Group.Mute; _source.volume = Group.Volume; _source.pitch = 1; _source.outputAudioMixerGroup = PYAudioManager.Instance.Mixer.FindMatchingGroups(Track.GroupTag.ToString())[0]; if (_source.clip != null) { _duration = _source.clip.length; } _delay = 0; _loop = false; IsPlaying = IsPaused = false; _isStoppingWithFade = false; OnStartPlaying = null; OnPlaying = null; OnResume = null; OnPaused = null; OnCompleted = null; OnStopped = null; AudioTrigger.Initialize(audioTag); }
// Base method for others implementations private PYAudioSource StartAudio(PYAudioTags audioTag, AudioTrack track) { PYAudioSource audioSource = CreatePYAudioSource(audioTag.ToString()); audioSource.Initialize(audioTag, track); if (_audioTriggers.ContainsKey(audioSource.AudioTag)) { foreach (PYAudioTrigger.Trigger trigger in _audioTriggers[audioSource.AudioTag]) { audioSource.AudioTrigger.AddTriggerAction(trigger); } } if (_audioSourceActions.ContainsKey(audioSource.AudioTag)) { foreach (PYAudioSource.EventListenerData listener in _audioSourceActions[audioSource.AudioTag]) { audioSource.AddListenerToEvent(listener); } } return(audioSource); }
private AudioTrack GetAudioTrack(PYAudioTags audioTag) { return(Audios.Find(item => item.Tag == audioTag.ToString())); }
void SetScore(string message, string name, int score, TagManager.GameDifficulty difficulty, PYAudioTags voiceMsg) { if (!char.IsLetter(name[0])) { return; } string[] studentNames = PYScoreData.GetStudentNames(); PlayTableKeyboard.Instance.SetText(name); PlayTableKeyboard.Instance.ShowText(); if (new List <string>(studentNames).Contains(name)) { string messageText = message; PYAudioManager.Instance.StartAudio(voiceMsg).Play(); PYAudioManager.Instance.StartAudio(PYAudioTags.Voice_ptBR_RegistrarPop01).Play(); PYAlertPopup popup = PYAlertPopup.InvokeAlertPopup("Popups/AlertPopup_2b").SetTitle("ATENÇÃO!", 1).SetText(messageText.ToUpper(), 1); popup.AddButton("PYButtonEffectManager", "NÃO").AddButtonAction(0, () => { PlayTableKeyboard.Instance.Close(); PYAudioManager.Instance.StartAudio(PYAudioTags.Voice_ptBR_No).Play(); }); popup.AddButton("PYButtonEffectManager_Smaller", "SIM").AddButtonAction(1, () => { CheckScore(name, score, difficulty); PYAudioManager.Instance.StartAudio(PYAudioTags.Voice_ptBR_Yes).Play(); }); popup.ClosePopupByFader = false; popup.Open(); } else { RegisterScore(name, score, difficulty); } }
public bool IsPlaying(PYAudioTags audioTag) { return(_executingAudioSources.Find((data) => data.AudioTag == audioTag) != null); }
public PYPlayerTag(string name, PYAudioTags tag) : base(name) { Tag = tag; }