コガネブログ

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

【Unity】TextMesh Pro でルビ(ふりがな)を振ることができる「TextMeshProRuby」紹介

はじめに

「TextMeshProRuby」を Unity プロジェクトに導入することで
TextMesh Pro でルビ(ふりがな)を振ることができるようになります

使用例

f:id:baba_s:20210131143617p:plain

使い方

f:id:baba_s:20210131143622p:plain

TextMesh Pro のゲームオブジェクトに「Text Mesh Pro Ruby」をアタッチして
「Text」の欄で <r=【ルビ】>【ルビを振るテキスト】</r> と入力することで使用できます

using TMPro;
using UnityEngine;

public class Example : MonoBehaviour
{
    public TMP_Text        m_text;
    public TextMeshProRuby m_ruby;

    private void OnGUI()
    {
        if ( GUILayout.Button( "TextMeshProRuby.Text で設定" ) )
        {
            m_ruby.Text = "<r=でんきねずみ>電気鼠</r>";
        }

        if ( GUILayout.Button( "TMP_Text.SetTextAndExpandRuby で設定" ) )
        {
            m_text.SetTextAndExpandRuby( "<r=でんきねずみ>電気鼠</r>" );
        }

        if ( GUILayout.Button( "タグ展開後のテキストを取得" ) )
        {
            // 電気鼠<space=-3.00em><voffset=1em>でんきねずみ</voffset>
            var text = TMProRubyUtil.GetExpandText( "<r=でんきねずみ>電気鼠</r>" );
            print( text );
        }
    }
}

スクリプトからは上記のように使用することができます

参考サイト様