コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】TextMesh Pro でタイプライターのように 1 文字ずつ表示できる「TMP_Typewriter」を GitHub に公開しました(リッチテキスト対応、DOTween 必須)

はじめに

TextMesh Pro でタイプライターのように 1 文字ずつ表示できる
「TMP_Typewriter」を GitHub に公開しました(リッチテキスト対応、DOTween 必須)

開発環境

  • Unity 2018.3.0f2
  • TextMesh Pro 1.3.0
  • DOTween 1.2.055

使い方

f:id:baba_s:20181225152543p:plain

  1. こちらから .unitypackage をダウンロードして Unity プロジェクトにインポートします
  2. 「TMP_Typewriter」を TextMesh Pro のゲームオブジェクトにアタッチします
  3. using KoganeUnityLib; を追加して TMP_Typewriter.Play 関数を呼び出します

使用例

1 文字ずつ表示

f:id:baba_s:20181224115900g:plain

// 1 文字ずつ表示する演出を再生
m_typewriter.Play
(
    text        : "ABCDEFG HIJKLMN OPQRSTU",
    speed       : m_speed,
    onComplete  : () => Debug.Log( "完了" )
);

1 文字ずつ表示(リッチテキスト対応)

f:id:baba_s:20181224115909g:plain

// 1 文字ずつ表示する演出を再生(リッチテキスト対応)
m_typewriter.Play
(
    text        : @"<size=64>ABCDEFG</size> <color=red>HIJKLMN</color> <sprite=0> <link=""https://www.google.co.jp/"">OPQRSTU</link>",
    speed       : m_speed,
    onComplete  : () => Debug.Log( "完了" )
);

1 文字ずつ表示(スプライト対応)

f:id:baba_s:20181224115917g:plain

// 1 文字ずつ表示する演出を再生(スプライト対応)
m_typewriter.Play
(
    text        : @"<sprite=0><sprite=0><sprite=1><sprite=2><sprite=3><sprite=4><sprite=5><sprite=6><sprite=7><sprite=8><sprite=9><sprite=10>",
    speed       : m_speed,
    onComplete  : () => Debug.Log( "完了" )
);

スキップ

f:id:baba_s:20181224115929g:plain

// 演出をスキップ(onComplete は呼び出される)
m_typewriter.Skip();

// 演出をスキップ(onComplete は呼び出されない)
m_typewriter.Skip( false );

一時停止・再開

f:id:baba_s:20181225202540g:plain

// 一時停止
m_typewriter.Pause();

// 再開
m_typewriter.Resume();

その他

f:id:baba_s:20181225210140g:plain

文字単位で演出を実装している場合も正常に動作します