[UNITY]TextAnimatorでTypewriterを一時停止する方法 | 『くつひも物語』開発日誌 #97

Text Animatorは、TextMeshProのテキストをアニメーションすることができる便利なアセットです。

UNITY公式YouTubeチャンネルでも紹介されています。

タイプライターを途中で止めたいだけなら標準機能を使えばいい

さて、このアセットを使うと、テキストを一文字ずつ表示させる「タイプライティング」が簡単に実装できます。

「タイプライティングを途中で止めて、ユーザーがなにか入力すると再開する」ということをしたければ、既に<waitinput>というタグが組み込まれているので、それを使えばよいです。

「これはタグの場所でタイプライティングが停止され、Input.anyKeyDownを検知したら再開する」というものです。大抵の場合はこれで事足りると思います。

Welcome to the <waitinput>Weather Forecast Secret Agency.とした場合。続きの文章はユーザーがなにか入力するまで表示されない。

Input.anyKeyDownが嫌な場合

さて、私のようにノベルゲームを作っていると、ユーザーの入力をなんでも受け付けるのではなく、特定のイベント(例えば「ダイアログウインドウのクリック」など)を発火条件にしたいところです。

そういう場合はカスタムアクションを自作する必要があります。

まず、こんな感じのクラスを書きます。

このクラスのTriggerMyEvent()を呼ぶと、タイプライティングが再開されます。

続いて、これをカスタムアクションとして登録するためのクラスを書きます。

これで終わりではありません。スクリプタブルオブジェクトを作ってアクションデータベースに登録する必要があります。

  1. 右クリック > Create > TextAnimator > Customから自作アクションのスクリプタブルオブジェクトを作成
  2. Plugins > Febucci > Text Animator > Data > Actions内にあるアクションデータベースのスクリプタブルオブジェクトに登録

これをしないとタグとして使えないので注意です。

以上!