2012年01月29日

[Unity] Android端末のTextFieldで日本語を表示する

UnityでTextFieldを扱うときがあります。
プログラムでこんな風に書いてみました↓
var text_en : String = "English";
var text_ja : String = "日本語 > にほんご";

function OnGUI() {
text_en = GUI.TextField(new Rect(100, 100, 200, 30), text_en);
text_ja = GUI.TextField(new Rect(100, 150, 200, 30), text_ja);
}

Android端末に出力すると日本語が表示されません↓

20120129unity_textfield1.png

そんなときは、日本語フォントを読み込めば表示できるようになります。
手順は以下のとおり。

(1) フォントは、参考元にあるように M+ FONTS からダウンロード&解凍。
※この例で使っているのは「mplus-2c-medium」です

(2) フォントをプロジェクトにインポート(プロジェクトウィンドウにフォントをドラッグする)

(3) プロジェクトウィンドウ内でフォント(mplus-2c-medium) を選択。
  Inspectorウィンドウで、Unicodeに変更して[Apply]ボタンを押して適用↓

20120129unity_textfield3.png

これでフォントの設定ができました。

■参考元
UnityでAndroidで日本語表示 :
http://blog.livedoor.jp/nanashisoft/archives/52479411.html

あとはスキンを用意して、プログラムでそのスキンを使用すれば日本語が表示されます。
手順は、

(1) プロジェクトウィンドウで右クリック。Create > GUI Skin

(2) (1)で生成したスキンをクリック。InspectorウィンドウのFontで「mplus-2c-medium」を選択

(3) プログラムでは、スキンの適用部分を追記します↓
var gSkin : GUISkin;

var text_en : String = "English";
var text_ja : String = "日本語 > にほんご";

function OnGUI() {
if (gSkin) {
GUI.skin = gSkin;
}
text_en = GUI.TextField(new Rect(100, 100, 200, 30), text_en);
text_ja = GUI.TextField(new Rect(100, 150, 200, 30), text_ja);
}

これで日本語が表示されるようになりました。

20120129unity_textfield2.png

最後に、作業画面のスクリーンショットです↓

20120129unity_textfield4.png

GameObjectに対する、スキンとプログラムの適用は忘れやすいので注意しましょう。
posted by be-style at 10:41| Comment(0) | Unity
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: [必須入力]