PausableTypewriter(TextMeshProUGUI,float,Action,Action,Action,Stack<(int position, float duration)>,CoroutineInterruptToken)

Method in Effects


A coroutine that gradually reveals the text in a TMPro.TextMeshProUGUI object over time.

public static IEnumerator PausableTypewriter(TextMeshProUGUI text, float lettersPerSecond, Action onCharacterTyped, Action onPauseStarted, Action onPauseEnded, Stack<(int position, float duration)> pausePositions, CoroutineInterruptToken stopToken = null)


Essentially identical to Typewriter(TextMeshProUGUI,float,Action,CoroutineInterruptToken) but supports pausing the animation based on pausePositions values.

This method works by adjusting the value of the text parameter's TextMeshProUGUI.maxVisibleCharacters property. This means that word wrapping will not change half-way through the presentation of a word.

Depending on the value of lettersPerSecond, onCharacterTyped may be called multiple times per frame.

Due to an internal implementation detail of TextMeshProUGUI, this method will always take at least one frame to execute, regardless of the length of the text parameter's text.



TMPro.TextMeshProUGUI text

A TextMeshProUGUI object to reveal the text of

float lettersPerSecond

The number of letters that should be revealed per second.

System.Action onCharacterTyped

An System.Action that should be called for each character that was revealed.

System.Action onPauseStarted

An System.Action that will be called when the typewriter effect is paused.

System.Action onPauseEnded

An System.Action that will be called when the typewriter effect is restarted.

System.Collections.Generic.Stack<(int position, float duration)> pausePositions

A stack of character position and pause duration tuples used to pause the effect. Generally created by GetPauseDurationsInsideLine(Markup.MarkupParseResult)

A CoroutineInterruptToken that can be used to interrupt the coroutine.

Yarn Spinner® and Secret Lab® are trade marks of Secret Lab Pty. Ltd., and are used by Yarn Spinner Pty. Ltd. under license.