この記事でのバージョン
Unity 2022.3.32f1
はじめに
以前テキストにアニメーションを追加したり、
![]() |
文字送り(文字を最初から順番に表示する)を実装出来たりする、
![]() |
Text Animatorというアセットを紹介しました。
![]() |
| Text Animator for Unity - Unity Asset Store |
今回はこのText Animatorで
「表示される文字に合わせてSE(効果音)を鳴らす」
というゲームでよくあるやつを実装する方法の紹介です!
Text Animatorで文字送り中に文字に合わせてSE(効果音)を鳴らす方法
さっそくですが、TypewriterByCharacter(またはTypewriterByWord)の
onCharacterVisibleというイベントで、
文字送り中に新たな文字が表示される度に処理が行えます。
//文字送り中に新たな文字が表示されたらログで表示 _typewriter.onCharacterVisible.AddListener((char c) => { Debug.Log($"追加文字 : {c}"); });
![]() |
これを使ってSEを鳴らせば良いわけですが、記号などのSEを鳴らしたくない文字を設定しておけば、
//SEを鳴らさない文字一覧 private readonly List<char> IGNORE_SE_CHARS = new List<char> { ' ', ' ', '\n', '\r', '\t', '\v', '\f', 'や', '。', '、', '!', '?', '「', '」', '(', ')', '[', ']', '『', '』', ':', ';', '―', '…', 'ー', '〜', '・', '+', '=', '<', '>', '*', '&', '%', '#', '$', '@', '^', '¥', '|', '{', '}', '‘', '’', '“', '”', '\', '/', '_', '\', '`', '{', '}', '⦅', '⦆' };
特定の文字の時はSEを鳴らさないという事も簡単に行えます。
//新たな文字の表示を検知 _typewriter.onCharacterVisible.AddListener((char c) => { //SEを鳴らす文字かチェック if (!IGNORE_SE_CHARS.Contains(c)) { /*SEを鳴らす処理*/ } });
なお、句読点などの任意の文字で溜めを作る事も可能です。
![]() |




