この記事でのバージョン
Unity 6000.1.11f1
Text Animator 2.3.1
はじめに
以前テキストにアニメーションを追加したり、
![]() |
文字送り(文字を最初から順番に表示する)を実装出来たりする、
![]() |
Text Animatorというアセットを紹介しました。
![]() |
| Text Animator for Unity - Unity Asset Store |
今回はこのText Animatorで特定の文字まで到達した瞬間を検知するイベントである、
Trigger Events when typingという機能の紹介です!
画像を変える<?ChangeImage=NewTax><waitfor=1.0>、 もう一回画像を変える<?ChangeImage=OneChance><waitfor=1.0>、変わった?
![]() |
https://docs.febucci.com/text-animator-unity/typewriter/trigger-events-when-typing
イベント
早速ですが、イベントの内容は先頭に?を付けて<と>で囲んだタグで設定します。
ちなみにタグは大文字小文字を区別します。
(waitforは以前紹介した待ち時間のタグ)
最初のテキスト<?eventTag><waitfor=1.0>、 イベントタグの後のテキスト<?eventTag2><waitfor=1.0>、最後のテキスト
次にタグを検知する方法ですが、
TypewriterCore(TypewriterByCharacterなどが継承してるやつ)のonMessageを購読する感じです。
using Febucci.UI.Core.Parsing;//EventMarkerを使うのに必要
//タグ検知用のイベント購読 _typewriterCore.onMessage.AddListener(OnMessage); //タグ検知用のイベント購読解除 //_typewriterCore.onMessage.RemoveListener(OnMessage);
//タグ検知用メソッド private void OnMessage(EventMarker eventMarker) { //eventMarker.nameで検知したタグを取得 Debug.Log($"タグ検知 : {eventMarker.name}"); }
![]() |
さらにタグの後に=を付ける事でパラメータを設定することも可能です。
(複数設定したい場合は=parameter,10みたいカンマ区切り)
画像を変える<?ChangeImage=NewTax><waitfor=1.0>、 もう一回画像を変える<?ChangeImage=OneChance><waitfor=1.0>、変わった?
private void OnMessage(EventMarker eventMarker) { Debug.Log($"タグ検知 : {eventMarker.name}, パラメータ: {string.Join(", ", eventMarker.parameters)}"); //eventMarker.nameでタグを判別 if(eventMarker.name == "ChangeImage") { //eventMarker.parameterからパラメータ取得 var imageKey = eventMarker.parameters[0]; _imageUI.Image.sprite = CommonSpriteProvider.GetEventSprite(imageKey); } }
![]() |
ただし、SkipTypewriterを使ってスキップするとイベントが発火しないので、
TriggerRemainingEventsを使って残っているイベントを実行する必要があります。
//文字送りをスキップして全文表示 _typewriterCore.SkipTypewriter(); //残っているタグイベントを実行 _typewriterCore.TriggerRemainingEvents();




