FC2ブログ
Unity3Dとの楽苦な日々
Unity3Dで作成した小品を通じて、楽だった点と苦に感じた点を報告していきます。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

3D Text

3DText Tree
http://dl.dropbox.com/u/108473486/Tree_3DText/Tree_3DText.html


3D Text を使ってみました。Unity3D エディタのメニューから、
  GameObject → Create Other → 3D Text
を選択します。Hierachy に New Text オブジェクトが追加されるので、それの Inspector 中の TextMesh の Text に表示したい文字列を設定すると、3D空間に文字を表示できます。

ただし、Zバッファが有効になっていないので、常に前面に表示されます。Zバッファを有効にするには、ZWrite を ON にした shader と入れ替える必要があります。

使われているシェーダは Mesh Renderer の Font Material に設定されている GUI/TextShader ですが、Inspector からこのシェーダを入れ替えられないようです。このため、New Text オブジェクトにスクリプトを設定して、スクリプト中でシェーダを入れ替えます。設定したシェーダを shaderZOn と名付けてとおくと、
こんな感じです。
  function start(){
    renderer.material.shader = shaderZOn;
  }

ZWrite を ON にした shader は
http://answers.unity3d.com/questions/22555/change-manually-guitextstext-color.html
にあるのをそのまま使わせてもらいました。

表示としては、これだけでは寂しかったので、ツリーのようなものが描けるようにしました。キューブはマウスクリックすると赤くなりますので、この状態で aキーを押すと、下に4つのキューブが追加されます。とりあえず、この手続きは何回でもできます。

キューブ同士を接続している線は、GLでは線幅を太くできないので、
http://answers.unity3d.com/questions/21174/create-cylinder-primitive-between-2-endpoints.html
を参考にして、プリミティブのシリンダを細くして描画しました。

キューブをダブルクリックすると、カメラの注視点をそのキューブに移動できます。カメラを回転しているときには、XZ平面と座標軸を表示するのですが、座標軸は原点固定で、注視点には移動しないようにしています。カメラの回転中心が原点でないことを確かめるために。

また、キューブの上でマウスポインタをしばらく動かさずにいると、キューブの面に描かれている文字情報が2Dで表示されます。

[楽]
3D Text の描画
前述したように、楽です。漢字も大丈夫です。初期状態では Arial フォントだけが登録されていますが、自分で登録したフォントでも大丈夫です。

[苦]
Z値付きの 3D Text
前述したようにシェーダを用意して、スクリプト中で入れ替える必要があります。

スポンサーサイト

コメント

コメントの投稿













管理者にだけ表示を許可する

トラックバック

プロフィール

海栗亭楽苦

Author:海栗亭楽苦
FC2ブログへようこそ!

最新記事

最新コメント

最新トラックバック

月別アーカイブ

カテゴリ

検索フォーム

RSSリンクの表示

リンク

ブロとも申請フォーム

QRコード

QR

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。