在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. 完成~!!!

相關文章
相關標籤/搜索