상속: CutsceneMedia
예제 #1
0
 /// <summary>
 /// Stops all subtitles from displaying by setting the current subtitle to null.
 /// </summary>
 void StopSubtitle()
 {
     currentSubtitle = null;
 }
예제 #2
0
 /// <summary>
 /// Stops the subtitle from displaying at its out point.
 /// </summary>
 /// <param name="duration">The time at which to stop the audio.</param>
 IEnumerator StopSubtitle(float duration)
 {
     yield return new WaitForSeconds(duration);
     currentSubtitle = null;
 }
예제 #3
0
    /// <summary>
    /// Displays the specified subtitle.
    /// </summary>
    /// <param name="clip">The subtitle to display.</summary>
    void PlaySubtitle(CutsceneClip clip)
    {
        currentSubtitle = (CutsceneSubtitle)clip.master;
        EDebug.Log("Displaying subtitle " + clip.name + " at " + animation["master"].time);

        StartCoroutine(StopSubtitle(clip.duration));
    }
예제 #4
0
    /// <summary>
    /// Called when the scene starts.
    /// </summary>
    void SceneStart()
    {
        if (startFunction != null) {
            startFunction();
        }

        // Stop the player from being able to move
        if (player != null && stopPlayer) {
            EDebug.Log("Cutscene: deactivating player");
            player.SetActive(false);
        }

        DisableCameras();
        currentSubtitle = null;

        EDebug.Log("Cutscene: scene started at " + animation["master"].time);
    }
예제 #5
0
    IEnumerator RunCutscene(AudioClip clip, AudioClip vo, List <CutsceneSubtitle> subtitles, List <CutsceneImage> images, Action callback)
    {
        cutsceneCallback = callback;

        audioSources[0].clip = clip;
        audioSources[0].Play();
        audioSources[3].clip = vo;
        audioSources[3].Play();

        List <CutsceneSubtitle> subs = new List <CutsceneSubtitle>(subtitles);
        List <CutsceneImage>    ims  = new List <CutsceneImage>(images);

        while (subs.Count > 0 || ims.Count > 0)
        {
            CutsceneSubtitle sub         = subs.Count > 0 ? subs[0] : null;
            CutsceneImage    im          = ims.Count > 0 ? ims[0] : null;
            float            currentTime = audioSources[0].time;
            if (sub != null && currentTime >= sub.time)
            {
                subtitleText.text = sub.text;
                subs.Remove(sub);
            }
            if (im != null && currentTime >= im.time)
            {
                cutsceneImage.DOFade(0f, 0.3f).OnComplete(() =>
                {
                    cutsceneImage.sprite = im.image;
                    ims.Remove(im);
                    cutsceneImage.DOFade(1f, 0.3f);
                });
            }
            yield return(null);
        }

        // Cutscene Images
        //List<CutsceneImage> imgs = intoCutsceneImages;
        //while (imgs.Count > 0)
        //{
        //    CutsceneSubtitle sub = subs[0];
        //    float currentTime = audioSources[0].time;
        //    if (currentTime >= sub.time)
        //    {
        //        subtitleText.text = sub.text;
        //        subs.Remove(sub);
        //    }
        //    yield return null;
        //}

        while (audioSources[3].isPlaying)
        {
            yield return(null);
        }
        audioSources[0].Stop();
        subtitleText.text = "";
        cutsceneImage.DOFade(0f, 0.3f);
        Action temp = cutsceneCallback;

        cutsceneCallback = null;
        temp?.Invoke();
        yield return(null);
    }