温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2020-06-23 05:57:19 来源:网络 阅读:1086 作者:jxw167 栏目:开发技术

大家在做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
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI