在Unity下实现遮罩功能

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

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

clip_image002

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

clip_image002

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

clip_image002[6]

这时候的场景以下: it

clip_image002[8]

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

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

Shader "Depth Mask" { 项目

SubShader{ static

ColorMask 0 img

Pass {}

}

}

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

5. clip_image002[10]

clip_image002[12]

6. 完成~!!!

相关文章
相关标签/搜索