在Unity下实现遮罩功能

在做项目的时候,遇到一个问题就是在一个UI界面上面会随机生成一些gameObject,但是他们的出现时有一定范围的,所以要做一个遮罩来控制这个范围,让生成的对象进入遮罩范围之后就不显示出来。。

1. 首先创建一个场景,在里面添加一个球(把这个部分当做是UI部分),主要是要说明用了遮罩之后,不会把我们的UI上的内容遮盖住

clip_image002

下面是摄像机的参数,主要是把相机变成正交摄像机,这也是普通UI摄像机的设置。

clip_image002

2. 然后给再添加一个图标(作为要被遮罩的内容)和一个Cube(遮罩),把图标的lay设置成GUI layer,把Cube的layer设置成Mask Layer, 然后另外添加一个摄像机专门显示图标和Cube:

clip_image002[6]

这时候的场景如下:

clip_image002[8]

3. 接下来是把Cube做成一个透明的遮罩,首先是写一个Shader:

DepthMask.shader,放在Asset目录下即可被读取。

Shader "Depth Mask" {

SubShader{

ColorMask 0

Pass {}

}

}

4. 修改Cube的Material,随便选择一种材料,然后给材料选择上我们的Shader,即可看到遮罩的效果。

5. clip_image002[10]

clip_image002[12]

6. 完成~!!!

转载于:https://my.oschina.net/u/185335/blog/348528

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值