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); }
public void AddDialogue(AudioClip voiceClip, string subtitle) { DialogueClip dialogue = new DialogueClip(); dialogue.voiceClip = voiceClip; dialogue.subtitle = subtitle; dialogues.Enqueue(dialogue); }
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)); }
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)); }
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; } }
private void Awake() { Target = (DialogueClip)target; }