コガネブログ

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

【Unity】TextMesh Pro でルビを振る時に表示位置がズレる場合の対処方法

はじめに

<nobr>ピカチュウ<space=-3.75em><voffset=1em><size=50%>ぴかちゅう</size></voffset><space=1.25em>

上記のようなタグを使用して TextMesh Pro でルビを振る時に

Alignment が左揃えならキレイに表示されるが

中央揃えや

右揃えだと表示位置が右にズレる現象に遭遇した
(一行目がルビ無しの場合の正しい位置)

ルビを振るテキストの後にルビを振らないテキストが続く場合は
Alignment が中央揃えや右揃えでも表示位置が右にズレることはなかった

対処方法

<nobr>ピカチュウ<space=-3.75em><voffset=1em><size=50%>ぴかちゅう</size></voffset><space=1.25em><size=0%></size>

ルビを振るタグの最後に <size=0%>あ</size> を追加して
サイズが 0 の文字が続くようにしたら

Alignment が中央揃えや右揃えでも表示位置が右にズレることはなくなった