Unity中具有Alpha通道图片之间的遮挡实现-创新互联

大家在做Unity的时候可能会遇到具有Alpha通道图片之间需要我们去做遮挡关系,比如类似下图的效果图示:

为银海等地区用户提供了全套网页设计制作服务,及银海网站建设行业解决方案。主营业务为成都网站设计、成都网站制作、银海网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

Unity中具有Alpha通道图片之间的遮挡实现

我们需要把具有Alpha通道的绿色圆圈的内部红色的部分遮挡住,使其看不到。首先我们需要先把具有绿色圆圈部分先遮挡住红色部分。需要我们写一个自定义Shader。其实我们需要做的无非两件事情一个是Alpha通道的处理,一个是Z值得处理。Shader如下所示:

Unity中具有Alpha通道图片之间的遮挡实现

需要我们把Z缓冲打开后,Z值就可以写入了。

那这个shader还是满足不了我们的需求,我们记下来就从层的角度出发去解决这个问题:

我这里写了一个自定义的MeshRender编辑类,自动挂接到对象上。

代码如下:

Unity中具有Alpha通道图片之间的遮挡实现

实现效果如下图所示:

Unity中具有Alpha通道图片之间的遮挡实现

大家可以看到绿色圆圈内部已经咩有红色的部分了,目的达到。

我们如何达到的呢?主要是通过设置Layer达到的。如下图:

Unity中具有Alpha通道图片之间的遮挡实现

以上我们的效果就达到了。代码在附件里面

附件:http://down.51cto.com/data/2365237

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网页名称:Unity中具有Alpha通道图片之间的遮挡实现-创新互联
文章路径:http://myzitong.com/article/cogceh.html