uGUI Text

Google VR¿¡¼­ È­¸é Á¦ÀÏ À§¿¡ UI¸¦ Ç¥½ÃÇغ¸ÀÚ.



1.  °ÔÀÓ ¿ÀºêÁ§Æ®¸¦ ¹èÄ¡ÇÑ´Ù.

CarboardMain / Head ¾Æ·¡ UI¸¦ ¸¸µç´Ù.
CarboardMain >> Head  >> Canvas >>  Panel  >> Text

CardboardMain ÀÚ½ÄÀ¸·Î ¹èÄ¡ Çϸé Ä«¸Þ¶ó¸¦ °è¼Ó µû¶ó ´Ù´Ï¸é¼­ È­¸é¿¡ ¶° ÀÖÀ»°ÍÀÌ´Ù.



2. Canvase¸¦ ¼³Á¤ÇÑ´Ù.
"Render Mode"¸¦  "World Space"·Î ¼³Á¤ÇØ¾ß ÇÑ´Ù.



3.  PanelÀ» ¼³Á¤ÇÑ´Ù.
(UiTop Material ¼³Á¤Àº Áö±ÝÀº ÇÏÁö ¾Ê´Â´Ù. ³ªÁß¿¡ ¼³¸íÇÑ´Ù)



4. Text¸¦ ¼³Á¤ÇÑ´Ù.
(UiTop Material ¼³Á¤Àº Áö±ÝÀº ÇÏÁö ¾Ê´Â´Ù. ³ªÁß¿¡ ¼³¸íÇÑ´Ù)



5. È­¸é Á¦ÀÏ À§¿¡ Ç¥½ÃÇÑ´Ù.
È­¸é Á¦ÀÏ À§¿¡ Ç¥½Ã µÇµµ·Ï ÇÏ´Â ¼ÎÀÌ´õ ÄÚµåÀÌ´Ù.

UiTop ¸ÞÆ®¸®¾óÀ» ¸¸µé°í "Default Font Draw On Top" ¼ÎÀÌ´õ¸¦ ¾îÅÂÄ¡ ÇÑ´Ù.
±×¸®°í, Panel°ú Text¿¡ UiTop ¸ÞÆ®¸®¾óÀ» ¼³Á¤ÇÑ´Ù.

Shader "UI/Default Font Draw On Top" {
     Properties {
         _MainTex ("Font Texture", 2D) = "white" {}
         _Color ("Text Color", Color) = (1,1,1,1)
         
         _StencilComp ("Stencil Comparison", Float) = 8
         _Stencil ("Stencil ID", Float) = 0
         _StencilOp ("Stencil Operation", Float) = 0
         _StencilWriteMask ("Stencil Write Mask", Float) = 255
         _StencilReadMask ("Stencil Read Mask", Float) = 255
 
         _ColorMask ("Color Mask", Float) = 15
     }
 
     SubShader {
 
         Tags
         {
             "Queue"="Transparent"
             "IgnoreProjector"="True"
             "RenderType"="Transparent"
             "PreviewType"="Plane"
         }
         
         Stencil
         {
             Ref [_Stencil]
             Comp [_StencilComp]
             Pass [_StencilOp]
             ReadMask [_StencilReadMask]
             WriteMask [_StencilWriteMask]
         }
         
         Lighting Off
         Cull Off
         ZTest Off
         ZWrite Off
         Blend SrcAlpha OneMinusSrcAlpha
         ColorMask [_ColorMask]
 
         Pass
         {
             CGPROGRAM
             #pragma vertex vert
             #pragma fragment frag
 
             #include "UnityCG.cginc"
 
             struct appdata_t {
                 float4 vertex : POSITION;
                 fixed4 color : COLOR;
                 float2 texcoord : TEXCOORD0;
             };
 
             struct v2f {
                 float4 vertex : SV_POSITION;
                 fixed4 color : COLOR;
                 float2 texcoord : TEXCOORD0;
             };
 
             sampler2D _MainTex;
             uniform float4 _MainTex_ST;
             uniform fixed4 _Color;
             
             v2f vert (appdata_t v)
             {
                 v2f o;
                 o.vertex = mul(UNITY_MATRIX_MVP, v.vertex);
                 o.color = v.color * _Color;
                 o.texcoord = TRANSFORM_TEX(v.texcoord, _MainTex);
 #ifdef UNITY_HALF_TEXEL_OFFSET
                 o.vertex.xy += (_ScreenParams.zw-1.0)*float2(-1,1);
 #endif
                 return o;
             }
 
             fixed4 frag (v2f i) : SV_Target
             {
                 fixed4 col = i.color;
                 col.a *= tex2D(_MainTex, i.texcoord).a;
                 clip (col.a - 0.01);
                 return col;
             }
             ENDCG
         }
     }
 }

ÂüÁ¶)
VR¿¡¼­ ¹®ÀÚ Ç¥½Ã
http://greety.sakura.ne.jp/redo/2015/01/uguioculus-rift.html
http://blog.csdn.net/sunmc1204953974/article/details/50402331
https://read01.com/Rn3yE.html

uGUI¸¦ ÃÖ»óÀ§¿¡ ±×¸®±â
http://answers.unity3d.com/questions/878667/world-space-canvas-on-top-of-everything.html