Hi,
It's better to set a timeline's speed to zero instead of calling the Pause() method. Otherwise, when you resume, it will re-execute all the actions at the current time in the timeline. That means it will re-show the dialogue entry.
Use the
Timeline() sequencer command to set the timeline's speed. For example, say the PlayableDirector is on a GameObject named ExampleTimeline. Use this sequence:
Code: Select all
Timeline(speed, ExampleTimeline, 0);
required Timeline(speed, ExampleTimeline, 1)@Message(Continued)
If you're not already familiar with sequences, I recommend watching the tutorials:
Cutscene Sequences Tutorials.
The first line sets ExampleTimeline's speed to zero. If the timeline were on the entry's speaker, you could change it to:
This way you don't have to know the GameObject name.
The second line waits for a message "Continued", which technically is never sent by anything, so it waits forever. However, since it has the "required" keyword, it will still run when the player advances the conversation by clicking the continue button.
Instead of entering this on every dialogue entry, inspect the conversation's properties. Tick Override Display Settings > Camera & Cutscene Settings. Then set the Default Sequence there.