[转载]Unity3d更改3d Text的字体的材质球的shader,使字体不显示

今天在用3D字体时碰到这个问题,字体会一直显示在相机最前面,与GUI 文字没有什么区别,
但是又发现这个字体文件的材质球又没办法更改,发现其实字体材质球用的shader是GUI/textShader,所以就会做GUI显示
 
解决办法:
1、新建一个材质球;
2、新建一个Shader,加上下面代码
Shader "Custom/3D Text Shader" {
 
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 On Fog { Mode Off }
   Blend SrcAlpha OneMinusSrcAlpha
   Pass {
      Color [_Color]
      SetTexture [_MainTex] {
         combine primary, texture * primary
      }
   }
}
}
3、将刚才的材质球的Shader改成自己新建的,并把字体文件下面的字体贴图拖到此材质球上面
4、将自己创建的材质球给3D Text对象
搞定!

posted on 2016-02-02 15:50  萨瓦迪卡麦兜兜  阅读(2011)  评论(0编辑  收藏  举报

导航