本经验介绍在Unity中,使用自带的3DText时,如何让文字可被遮挡且单面显示。需要修改Shader和Material。
工具/原料
Unity2018.3
方法/步骤
1、首先,在Unity中,默认的3DText渲染如图所示,图像可以被穿透且是双面显示的。
2、选中3DText,逐吴哉姆可以看到其TextMesh组件,以及使用的FontMaterial。为了让文字可被遮挡/单面显示,必须修改这两个地方。
3、关于实现原理和方法,在Unity的Wiki文档的3DText中有介绍。
4、在Shaders文件夹下创建一个Shader文件,如图所示。
5、按照UnityWi氯短赤亻ki的说明,在Shader文件中粘贴如下代码。注意其中的CullBack是和原本GUI/3DTextShader的不同之处。
6、接着创建一个新的Material,选中新的Material,修改其Shader为刚刚创建的Shader。
7、接着打开原来的3DText游戏物体,找到TextMesh组件所引用的Font。
8、将该Font的Texture拖动到新创建的材质的FontTexture上。
9、此时材质已经准备好了,然后再次选中3DText游戏物体,将该材质拖动到其MeshRenderer组件的Materials上。
10、最终可以看到如图效果,文字可以被遮挡,且单面显示了。