3DText无法被物体遮挡 - 解决
阅读原文时间:2023年07月09日阅读:2

目录

开篇:

问题复现:

如何解决:

1、创建一个Shader

2、创建一个Material

3、给Material赋值字体

4、给3DText属性赋值

5、查看效果

希望大家:点赞,留言,关注咯~

唠家常

今日无推荐


最近啊,小黑有个朋友(下面简称:秀莲)这段时间在面试,他每次出去面试都做记录,小黑也是把面试记录都要了过来,看到其中有一个看效果还要源码、要提供开发文档、要package包的某垃圾中的垃圾公司(具体公司名就不说了,小黑害怕,嘤嘤嘤~~),他们就是想要秀莲做免费劳苦力,给他们完成一个Demo,具体需求小黑贴在下边。

看完之后,小黑也有些手痒痒,于是抽空写了一下,写到第4题的时候,小黑就想着反正是有效果就行,那就用3DText来弄吧,顺便还能熟悉一下3DText这个组件,然后就遇到了这个问题:3DText无法被物体遮挡,接着就有了这篇博客。

我们使用Unity默认字体(Arial),然后进行操作。

是不是发现了问题,我们所创建的3DText无法被我们的3D人物遮挡,那这个效果来做拖尾肯定是不行的,所以我们要解决这个问题。

自己找了半天问题,不如上网半小时!
上网半小时,20分钟在筛选!
最后10分钟,5分钟阅读,5分钟解决问题!

1、创建一个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
                }
            }
        }
}

2、创建一个Material

然后Shader改为刚刚创建的这个Shader

3、给Material赋值字体

把你想要用的字体拖拽到Unity中来,然后字体下边的Font Texture,赋值给当前的Material

4、给3DText属性赋值

5、查看效果

  • 小黑的今日分享结束啦,小伙伴们你们get到了么,你们有没有更好的办法呢,可以评论区留言分享,也可以加小黑的QQ:841298494,大家一起进步

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章