(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

(:3[kanのメモ帳]


本ブログの運営者kan.kikuchiが個人で開発したゲームです!


TextAnimatorの文字送りで、特定の文字の時だけ待ち時間を変えて溜めを作る方法【Unity】【TextMesh Pro】【アセット】


このエントリーをはてなブックマークに追加

この記事でのバージョン
Unity 2022.3.32f1


はじめに

以前、テキストのアニメーションを簡単に実装出来る Text Animatorというアセットで、

文字送り(文字を最初から順番に表示する)も簡単に実装する方法という紹介をしました。


今回はText Animatorで文字送りをさせる際に、

特定の文字の時だけ待ち時間を変えて溜めを作る方法の紹介です!


特定の文字の時だけ待ち時間を変えて溜めを作る方法

まず、待ち時間はInspector上だとTypewriterByCharacterの下の方に設定箇所があります。

この際、LongやMiddleといった特定のカテゴリに属している文字だけ待ち時間を変えられます。


ちなみにプログラムからは設定する事も可能です。

//通常の文字の待ち時間(次の文字を表示するまでの時間)を0.03秒に
 _typewriter.waitForNormalChars = 0.03f;

//longの文字の待ち時間を2秒に
 _typewriter.waitLong = 2.0f;


あとは待ち時間を増やしたいLongやMiddleに属する文字を設定すればいいだけですが、

この対象は残念ながらコードに直書きされており、しかも日本語の句読点には対応していません。


なので、任意の文字の待ち時間を変えたい時はTypewriterByCharacter.csを以下のように変えましょう。

 switch (character)
{
  case ';':
  case ':':
  case ')':
  case '-':
  case ',':
  case '、'://、をMiddleに追加
    return waitMiddle;

  case '!':
  case '?':
  case '.':
  case '。'://。をLongに追加
    return waitLong;
}


こうすれば好きな文字のタイミングで溜めを作る事が出来ます。