Triggering Events while typing

Events are special tags that let you send messages (string) to any listener script, once the typewriter has reached a specific part of the text. (For this reason, events work only if the typewriter is enabled)

textanimatorgif2febucci
Scene 'Example 3 - Events'

Overview

You can write events in your text by using rich text tags.

Formatting

Event’s messages are preceded by a question mark, like this: <?eventMessage>.

Example: To call an event named ‘shakeCamera’, write: <?shakeCamera>

  • 👍🏻 An event can have any kind of tag, including built-in effect’s ones.
  • ⚠️ Events are case sensitive. Writing <?camshake> is not the same as writing <?camShake>. Be careful! (or use the string.ToLower() method in your scripts to account for that.)

Parameters

Events can have one or multiple parameters (starting with the = sign for the first, and then separating the others with a comma ,), to allow you to send multiple data to your scripts.

  • One parameter: <?eventID=parameter1>, will result in a message “eventID” and one parameter “parameter1”.
  • Multiple parameters: <?eventID=p1,p2>, will result in a message “eventID” and parameters “p1” and “p2”.

Listening to events

The scripts that you want to listen from events/messages must subscribe to the onMessage callback inside the Typewriter class. (Scripting Api).

Example:


//Inside your script

public Febucci.UI.Core.TypewriterCore typewriter;

//Adds and removes listening to callback
void OnEnable() => typewriter.onMessage.AddListener(OnTypewriterMessage);
void OnDisable() => typewriter.onMessage.RemoveListener(OnTypewriterMessage);

//Does stuff based on event
void OnTypewriterMessage(Febucci.UI.Core.Parsing.EventMarker eventMarker)
{
    switch (eventMarker.name)
    {
        case "something":
            // do something
            break;
    }
}

👍🏻 Note how the “message” string has no ‘<‘, ‘?’ and ‘>’ characters, but only contains the message.

You can find the EventMarker API here, for example to get all the parameters of the event (if any).

End of the page. Go back to the Documentation Index.