在打字时触发事件
事件是特殊的标签,允许你在打字机到达文本的特定位置时向任何监听脚本发送消息(字符串)。 (因此,事件仅在打字机启用时有效)

概述
你可以通过使用富文本标签在文本中编写事件。
格式说明
事件的消息以问号开头,如下所示: <?eventMessage>.
分隔 示例: 要调用名为“shakeCamera”的事件,写成: <?shakeCamera>
👍🏻 事件可以包含任何类型的标签,包括内置效果的标签。
⚠️ 事件区分大小写。写成
<?camshake>与写成<?camShake>不同。请注意!(或者在你的脚本中使用string.ToLower()方法来处理这种情况。)
参数
事件可以有一个或多个参数(第一个以 = 符号开始,然后用逗号分隔其它参数 ,),以便你向脚本发送多个数据。
一个参数:
<?eventID=parameter1>,将产生消息“eventID”以及一个参数“parameter1”。多个参数:
<?eventID=p1,p2>,将产生消息“eventID”以及参数“p1”和“p2”。
监听事件
想要监听事件/消息的脚本必须订阅 onMessage 回调到 Typewriter 类中。(脚本 API).
分隔 示例:
//在你的脚本内
public Febucci.UI.Core.TypewriterCore typewriter;
//添加和移除对回调的监听
void OnEnable() => typewriter.onMessage.AddListener(OnTypewriterMessage);
void OnDisable() => typewriter.onMessage.RemoveListener(OnTypewriterMessage);
//根据事件执行操作
void OnTypewriterMessage(Febucci.UI.Core.Parsing.EventMarker eventMarker)
{
switch (eventMarker.name)
{
case "something":
// 做某事
break;
}
}👍🏻 注意“message”字符串不包含 ‘<’、‘?’ 和 ‘>’ 字符,仅包含消息本身。
你可以在这里找到 EventMarker API,例如用于获取事件的所有参数(如果有)。
最后更新于