(:3[kanのメモ帳]

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

(:3[kanのメモ帳]


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


テキストを逆から(右から左に)文字送りして表示する【Unity】【DOTween】【TextMesh Pro】


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


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


はじめに

UnityのTextMesh Proで1文字ずつテキストを表示する、

いわゆる文字送りはDoTweenをはじめ、色々な方法で簡単に実現出来ます。




しかし、逆から(右から左に)文字を表示する方法は、意外と用意されていませんでした。

と言う事で今回は、テキストを逆から(右から左に)文字送りして表示する方法の紹介です!




テキストを逆から(右から左に)文字送りして表示する

今回はDoTweenの1文字ずつアニメーションさせる方法を使います。


具体的には全文字を先にスケール0にして非表示にし、右からスケールを1にしていく表示する感じです。

//DoTweenを使ってで右側から1文字ずつ表示
var countAnimator = new DOTweenTMPAnimator(_totalCountText);
var countSequence = DOTween.Sequence();
    
//表示する時間と、表示間隔
var scaleDuration = 0.01f;
var interval = 0.15f;

//右側からTween設定
for (int i = countAnimator.textInfo.characterCount - 1; i >= 0; i--) {
  //最初に文字のスケールを0にして非表示
  countAnimator.SetCharScale(i, Vector3.zero);
  
  //スケールのTweenで表示し、一定時間待つように
  countSequence.Append(countAnimator.DOScaleChar(i, Vector3.one, scaleDuration));
  countSequence.AppendInterval(interval);
}


これを使えば以下のように逆から文字送りして表示する事が出来ます。

(例では2つのSequenceを同時に実行している感じ)