FC2ブログ
    02 «1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.» 04

    ハルシオンシステムの気ままBlog

    株式会社ハルシオンシステムのメンバーが送る、UnityやらJavaやらの技術的話題から、自社開発のアプリの宣伝とかとかのブログです。ほんと気ままにいきたいと思います。更新日は毎週 月 木でっす!

     

    【ハルシオンUnityブログ】TMProだと禁則処理だとか文字送りアニメーションとか簡単にできるんすね! 

    こんにちは。坂内っす。

    ポケットガール~受け継がれし希望~よろしくお願いします。
    URL(Android):https://play.google.com/store/apps/details?id=com.halcyon.pocketgirl3
    URL(iOS):https://itunes.apple.com/jp/app/id1539553611

    PV:



    以前SuperTextMeshで禁則処理の話をしたと思います。
    http://halcyonsystemblog.jp/?q=%E7%A6%81%E5%89%87%E5%87%A6%E7%90%86&charset=utf-8

    TMProでは、デフォルトで禁則処理がされているようです。


    素敵ですね!


    さて、TMProでの文字送り(タイプライター)の方法を調べてみました。
    STMだと簡単にできたのですが、TMProではボタンぽちっとはできないようですね。

    maxVisibleCharactersをコードで制御する方法が一般的なようです。

    maxVisibleCharactersは表示する文字数のことで、

    maxVisibleCharacters = 10;

    とやれば、10文字表示するということです。

    これをコルーチンなどで数値をカウントアップしていけば、文字送りができそうです。


    [TMPTypewriter.cs]

    using Cysharp.Threading.Tasks;
    using TMPro;
    using UnityEngine;

    public class TMPTypewriter : MonoBehaviour
    {
    TMP_Text lblText;
    int txtCnt = 0;

    private void Awake() {
    lblText = GetComponent<TMP_Text>();
    lblText.maxVisibleCharacters = txtCnt;
    }

    private async UniTask Start() {
    for (int i = 0; i < lblText.text.Length; i++) {
    lblText.maxVisibleCharacters = txtCnt;
    await UniTask.WaitForSeconds(0.08f);
    txtCnt++;
    }
    }
    }



    なんかこんな感じでmaxVisibleCharactersをカウントアップしていけば、できるようです。





    また、TextMeshProAnimatorを使う方法もあるぽいです。

    Gitからこちらを入れます。
    https://github.com/coposuke/TextMeshProAnimator

    TextMeshProSimpleAnimatorというコンポーネントが使えるようになるので、TMProのオブジェクトにつけるだけ。



    これだけで、Speed Per Characterの時間で文字送りができます。

    これ便利!

    TextMeshProAnimatorさんのGIT見る感じ、文字送り以外いろいろなアニメーションが簡単にできるようですね!

    つかってみてください!


    では、あでゅ~ノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    コメント

    コメントの投稿

    Secret

    トラックバック

    トラックバックURL
    →http://halcyonsystemblog.jp/tb.php/1019-438f3f2a
    この記事にトラックバックする(FC2ブログユーザー)