Example #1
0
    protected override Playable CreatePlayable(PlayableGraph graph, GameObject go, TimelineClip clip)
    {
        PlayableDirector director     = go.GetComponent <PlayableDirector>();
        DialogueClip     dialogueClip = clip.asset as DialogueClip;
        Playable         playable     = base.CreatePlayable(graph, go, clip);

        return(playable);
    }
Example #2
0
    public void AddDialogue(AudioClip voiceClip, string subtitle)
    {
        DialogueClip dialogue = new DialogueClip();

        dialogue.voiceClip = voiceClip;
        dialogue.subtitle  = subtitle;
        dialogues.Enqueue(dialogue);
    }
Example #3
0
    public override Playable CreateTrackMixer(PlayableGraph graph, GameObject go, int inputCount)
    {
        foreach (TimelineClip clip in GetClips())
        {
            DialogueClip dialogueControlClip = clip.asset as DialogueClip;
            dialogueControlClip.PauseTimelineEvent = PauseTimelineEvent;
            dialogueControlClip.PlayDialogueEvent  = PlayDialogueEvent;
        }

        return(base.CreateTrackMixer(graph, go, inputCount));
    }
Example #4
0
    public override Playable CreateTrackMixer(PlayableGraph graph, GameObject go, int inputCount)
    {
        CutsceneManager cutsceneManagerRef = go.GetComponent <PlayableDirector>().GetGenericBinding(this) as CutsceneManager;

        foreach (TimelineClip clip in GetClips())
        {
            DialogueClip dialogueControlClip = clip.asset as DialogueClip;
            dialogueControlClip.cutsceneManager = cutsceneManagerRef;
        }

        return(base.CreateTrackMixer(graph, go, inputCount));
    }
Example #5
0
    IEnumerator PlayDialogue()
    {
        while (true)
        {
            // Don't bother doing anything until there's actually dialogue to do
            yield return(new WaitUntil(() => dialogues.Count > 0));

            // Wait until any current voice clip is done playing
            yield return(new WaitWhile(() => audioSource.isPlaying));


            // Play the dialogue
            DialogueClip dialogue = dialogues.Dequeue();
            audioSource.clip = dialogue.voiceClip;
            audioSource.Play();
            subtitleText.text = dialogue.subtitle;
        }
    }
Example #6
0
 private void Awake()
 {
     Target = (DialogueClip)target;
 }