unityのテキストにルビ文字をふる

今、作ってるゲームが、どうしても文章が多くなってしまい、
なんとかしてunityのテキストにルビ文字の仕組みを作ってみました。


↓unityのプロジェクトです。ダウンロードしてunityで開いてみてください。
unity_ruby_sample


f:id:kuwa8128:20170320111957p:plain

こういう画面が表示されたでしょうか?


このプロジェクトでルビ文字に必要なのは

・ルビ文字表示用のプレハブ(pf_ruby.prefab)

・テキストにアタッチするスクリプト(ruby_text.cs)

この2つです。


まずpf_ruby.prefabをResourcesフォルダ内に配置してください。
場所、ファイル名はruby_text.csの中で指定してあるので、
必要があれば変更もできます。


次にルビをふりたいテキストに、
ruby_text.csをコンポーネントとして付け足してください。

f:id:kuwa8128:20170320182723p:plain:w240


ルビ文字の表記の仕方は
f:id:kuwa8128:20170320184046p:plain:w400
こんな感じです。

ルビ文字のフォント、大きさ、色などは、
pf_ruby.prefabを調整してください。
プレハブの中身はuGuiのTextです。



スクリプトで制御する場合

テキストをアクティブにしたときにルビ文字の処理が行われます。
なのでスクリプトで表示する際は、

非アクティブ状態でテキストを設定

次にテキストをアクティブにする。

text1.GetComponent<Text> ().text = "ルビ[文字:もじ]のテスト";
text1.SetActive (true);

以上のような段取りを取ってください。



注意事項

・長い文章(200文字以上とか)には対応していません。

・ルビ文字の箇所が10箇所以上にも対応していません。

・iTweenなど同時に扱うとうまくいかない場合があります。
 タイミングをずらすなどして工夫してください。