Example #1
0
    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();
    }
Example #2
0
    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);
        });
    }
Example #3
0
    /// <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);
            });
        }
    }
Example #4
0
    public void FadeOut(string name)
    {
        AudioSource source = Array.Find(sources, sound => sound.clip.name == name);

        source.DOComplete();
        source.DOFade(0, 0.7f);
    }
Example #5
0
    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;
    }