強火で進め このページをアンテナに追加 RSSフィード

整理された情報は こちら へどうぞ。

2011年06月15日

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

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

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

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

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

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

f:id:nakamura001:20110615133811p:image

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

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

アプリ内への埋込みなども可能なライセンスで配布されている日本語フォント - 強火で進め

http://d.hatena.ne.jp/nakamura001/20110615/1308153809

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

f:id:nakamura001:20110616011649p:image

f:id:nakamura001:20110616011648p:image

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

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

var gui : GUISkin;

function OnGUI () {
	GUI.skin = gui;

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

GUI Textの場合

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

f:id:nakamura001:20110615133813p:image

3D Textの場合

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

f:id:nakamura001:20110615133812p:image

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

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

f:id:nakamura001:20110616010034p:image

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

f:id:nakamura001:20110616010033p:image

(2011/06/18 追記)

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

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

f:id:nakamura001:20110618212357p:image

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

f:id:nakamura001:20110618212356p:image

(追記ここまで)

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

関連情報

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

dearnadearna 2011/06/18 12:47 どうもどうもU3Dフォントのご紹介までいただき有難うございます。
3DTextの表示がうまくいかない件ですが、New TextオブジェクトのMeshRendererにある
Materialの設定を再度しなおしたらうまくいかないでしょうか。
私のWindows環境ではマテリアルを設定しなおすことで表示されるようになりました。
どうも作成直後だとマテリアル名フォントはあっていても、必要なシェーダー情報などが
GameObjectに紐付かないようで、これが原因かな?とも思っています。

nakamura001nakamura001 2011/06/18 21:20 早速、試して見たところバッチリ綺麗に表示されました。
記事の方へ情報を追記しておきます。アドバイスありがとうございました。

投稿したコメントは管理者が承認するまで公開されません。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト

コメントを書くには、なぞなぞ認証に回答する必要があります。

リンク元