ちょっと未来

色々作って、色々書きます。最近はOculus Riftでメーヴェ風フライトシミュレータ作ってます

Oculus Rift + Unity 画面上に文字を表示する

Unityで画面上にスコアや”Gameover”みたいな文字を表示するとき、
普通だと”GUI Texture” とかを使いますが、Oculus Riftでそれをやるとちゃんとステレオに表示されない、、、

3D Textを使えばOK

どうすればいいのか調べると "3D Text"を使えばよかった。

3D TextをPlayerの配下に置けば、常に視界に表示されるので、スコアなどを表示するのはこれでOKですね。

で、3D Textを使った時のその他Tipsを以下にメモメモ、、、

3D Textぼやける問題

デフォルトの設定だとボヤけてます。なんだこりゃ。

f:id:wasan:20141024074543p:plain

これは、Character Sizeを小さくして、Font Sizeを大きくすればOKの模様。

【before】Character Size = 1, Font Size = 0

f:id:wasan:20141024074726p:plain

↓ 【after】Character Size = 0.1, Font Size = 200

f:id:wasan:20141024074734p:plain

するとこんな感じでクッキリと!

f:id:wasan:20141024074747p:plain

文字をプログラムから変える

スコアとか表示するなら、プログラムから文字を変更したくなります。 TextMeshのtextを変更すればOKそう。

# Inspectorで3D Textを渡しておく
public GameObject messageText;

void Update () {

    messageText.GetComponent<TextMesh>().text = score + "Pt";

}

(2015.1.31追記)
3D Textを隠すのはこんな感じ

messageText.renderer.enabled = false; // 非表示にする