public void StartAudio() { // Complete any tweens (in case the fade-out is still running) audio.DOComplete(true); // Fade the audio in audio.volume = 0f; audio.DOFade(1f, fadeIn); // Play the audio that underscores the boost audio.clip = clip; audio.Play(); }
public void PlayMusic(AudioEnums.MusicId musicId, bool IsLoop = false, bool IsReset = true) { List <AudioClip> audioFound; _MusicAudioSource.DOComplete(true); if (!_MusicDictionary.TryGetValue((int)musicId, out audioFound)) { return; } if (audioFound.Count <= 0) { return; } var index = Random.Range(0, audioFound.Count); if (!object.ReferenceEquals(_MusicAudioSource.clip, null) && !IsReset && audioFound[index].name == _MusicAudioSource.clip.name) { return; } _MusicAudioSource.DOFade(0, VariablesEnums.AnimationDurationFade).OnComplete(() => { _MusicAudioSource.clip = audioFound[index]; _MusicAudioSource.loop = IsLoop; _MusicAudioSource.Play(); _MusicAudioSource.DOFade(VariablesEnums.VolumeMusicPlayer, VariablesEnums.AnimationDurationFade); }); }
/// <summary> /// Players the music. /// </summary> /// <param name="musicIndex">Music index.</param> /// <param name="IsLoop">If set to <c>true</c> is loop.</param> /// <param name="IsReset">if set to <c>true</c> the music player will restart play the sound anyway.</c></param> public void PlayerMusic(Enums.MusicIndex musicIndex, bool IsLoop = false, bool IsReset = true) { AudioClip audioFound; MusicPlayer.DOComplete(true); musicLibrary.TryGetValue((int)musicIndex, out audioFound); // TODO: The condition to reset. if (object.ReferenceEquals(MusicPlayer.clip, null) || IsReset || !object.ReferenceEquals(audioFound, null) && audioFound.name != MusicPlayer.clip.name) { // TODO: animation fade MusicPlayer.DOFade(0, Contains.DurationFade).OnComplete(() => { if (!object.ReferenceEquals(audioFound, null)) { if (musicLibrary.TryGetValue((int)musicIndex, out audioFound)) { MusicPlayer.clip = audioFound; MusicPlayer.Play(); MusicPlayer.loop = IsLoop; } } MusicPlayer.DOFade(0.7f, Contains.DurationFade); }); } }
public void FadeOut(string name) { AudioSource source = Array.Find(sources, sound => sound.clip.name == name); source.DOComplete(); source.DOFade(0, 0.7f); }
IEnumerator DoDialogue() { bool oldPingInput = false; bool pingInput = Input.GetAxisRaw("Ping") > 0; isInteracting = true; player.isInCutscene = true; speechCam.Priority = 90; coll.enabled = false; speech.DOKill(); speech.position = transform.position; speech.DOScale(speechScale, 0.3f).SetEase(Ease.OutCubic); speech.DOMove(transform.position + speechOffset, 0.3f).SetEase(Ease.OutCubic); DialogueData dialogueData = dialogue[level]; dialogueData.onStart?.Invoke(); string[] lines = dialogueData.lines.Split('\n'); foreach (string line in lines) { speechText.text = ""; oldPingInput = pingInput; yield return(0); pingInput = Input.GetAxisRaw("Ping") > 0; var sb = new System.Text.StringBuilder(); float t = 0; speechAudio.DOComplete(); speechAudio.volume = 1; speechAudio.Play(); for (int c = 0; c < line.Length; t += Time.deltaTime) { if (pingInput && !oldPingInput) { // skip speechText.text = line; break; } while (c < line.Length && c * textSpeed <= t) { sb.Append(line[c]); speechText.text = sb.ToString(); c++; } oldPingInput = pingInput; yield return(0); pingInput = Input.GetAxisRaw("Ping") > 0; } speechAudio.DOFade(0, 0.1f).OnComplete(() => speechAudio.Stop()); do { oldPingInput = pingInput; yield return(0); pingInput = Input.GetAxisRaw("Ping") > 0; } while (!(pingInput && !oldPingInput)); speechText.text = ""; } if (dialogueData.shouldIncreaseLevel) { SetLevel(level + 1); } dialogueData.onEnd?.Invoke(); speech.DOKill(); speech.DOScale(Vector3.zero, 0.3f).SetEase(Ease.InCubic).OnComplete(() => speech.position = transform.position); coll.enabled = true; speechCam.Priority = 0; player.isInCutscene = false; isInteracting = false; }