トマシープが学ぶ

Unity/VR/AR/デザイン好きのミーハー 記事内容は自分用のメモです

3DTextの主張を止めたい【Unity】

3DText

3D>Textで出したText、常に前面に表示される。

f:id:bibinbaleo:20200828221819p:plainf:id:bibinbaleo:20200828221816p:plain

 

設定で簡単に変えられるかと思ったらできない。

f:id:bibinbaleo:20200828224111p:plain

対処少しめんどくさい

boothでunitypackageを配布されている方いる。macだと開けなかった

booth.pm

 

やる

テキスト用のシェーダー作って、それを適用したマテリアルを作って、それをフォントのマテリアルに適用しないといけない。

こちらのサイト通りにやってみた

tama-lab.net

シェーダー作る

Shader "Custom/3DText" {
Properties {
_MainTex ("Font Texture", 2D) = "white" {}
_Color ("Text Color", Color) = (1,1,1,1)
}
 
SubShader {
Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" }
Lighting Off Cull Off ZWrite Off Fog { Mode Off }
Blend SrcAlpha OneMinusSrcAlpha
Pass {
Color [_Color]
SetTexture [_MainTex] {
combine primary, texture * primary
}
}
}
}

適用したマテリアル作る

f:id:bibinbaleo:20200828223637p:plain

シェーダー右クリック>Create>Materialでそのシェーダーを適用したマテリアルができるの知らなかった!

フォントを入れる。

f:id:bibinbaleo:20200828224417p:plain

マテリアルのテクスチャに、さっき入れたフォントのFontTextureを適用

f:id:bibinbaleo:20200828224114p:plain

3DTextのMeshのMaterialに作ったマテリアルを適用

f:id:bibinbaleo:20200828224107p:plain

これでできた!文字の色はマテリアルの設定の方で変える。

f:id:bibinbaleo:20200828224054p:plain

f:id:bibinbaleo:20200828224100p:plain

マテリアルこんな感じになってた

f:id:bibinbaleo:20200828224051p:plain

フォントを入れる場合はこれでいいけど、Unityにデフォルトで入っているArialフォントのFontTextureってどこにあるんだろう。

わざわざ3DTextを前面にするためだけにフォント入れるのめんどくさいな〜