強火で進め

このブログではプログラム関連の記事を中心に書いてます。

GUIやテキスト表示で日本語を使う方法とフォント埋込みについて

ボタンなどのGUI上で使う方法

普通にプログラム内にこんな感じに普通に日本語を使って記述すればOKです。文字コードUTF-16で保存して下さい。

	GUI.Button (Rect (5, 5, 100, 100), "テストボタン");

フォントの埋込みについて

フォントをアプリ内に埋込んで指定のフォントで描画したい場合は GUI Skin を使います。 GUI Skin はProjectビューのCreateから追加出来ます。

フォントはTrueTypeフォントのみ対応しています。ファイルにはちゃんと拡張子 .ttf が付いていないと正しく処理されませんので注意して下さい。

なお、フォントはほとんどのものがアプリ内への埋込みを許可していないません。フォントの埋込みを活用するする場合はその様な使用についても許可しているフォントを使う様にしましょう。例えばこちらで紹介したフォントなどが利用可能です。

アプリ内への埋込みなども可能なライセンスで配布されている日本語フォント - 強火で進め
http://d.hatena.ne.jp/nakamura001/20110615/1308153809

Unityに取り込んだフォントはそのままフォントファイルを読み込んで描画する Dynamic 以外にもテクスチャに書きこむ方法も選択出来ます。


ちなみに、 Dynamic をサポートしてるのはDesktop platforms(MacWindows)だけみたいです。

プログラムはこの様になります。

var gui : GUISkin;

function OnGUI () {
	GUI.skin = gui;

	GUI.Button (Rect (5, 5, 100, 100), "テストボタン");
}

GUI Textの場合

GUI Textの場合はInspectorで設定します。 Text に直接日本語で入力すれば設定出来ます。上手く入力出来ない場合はエディタなどで書いたものをコピペしてみて下さい。 Font で自分が取り込んだフォントに変更する事も出来ます。

3D Textの場合

3D TextもGUI Textの場合と同様にInspectorで設定出来ます。

自分が試した範囲だと3D Textは埋め込んだ日本語フォントを選択すると正しく描画されませんでした。

【デフォルトフォントの場合】

【埋め込んだ日本語フォントの場合】

(2011/06/18 追記)
コメント欄にて頂いた、 id:dearna さんのアドバイスを試して見たところ正しい描画が出来る様になりました。

手順としては3D TextのここのMaterialを選択し直すだけです。

こんな感じにちゃんと表示されました。

(追記ここまで)

今回のサンプルはこちらで試せます。ソースファイルはこちら

関連情報

Unity - Font
http://unity3d.com/support/documentation/Components/class-Font.html

Selected U3D Japanese Font - 俺がぐったり部だ!
http://d.hatena.ne.jp/dearna/20110419/1303207066

Unityで日本語フォントを使う(モバイル編) - Radium Software
http://radiumsoftware.tumblr.com/post/4107015526