unity 2D 透明遮罩 簡單實現物體一半透明

大致需要用到的東西: shader 材質 深度攝像機

unity實現2D遮罩找了許多的解決方法,這個是我採取的一種方法,比較便捷,但不一定是最好的

主要想實現的效果是這樣的,小偷藏在窗戶的後面,並且有移動的動畫,需要遮罩除去其在窗戶之外的部分

查看圖片

首先新建一個Shader,代碼如下,很短

Shader "Depth Mask" {
SubShader{
ColorMask 0
Pass {}
}
}


再新建一個材質

查看圖片查看圖片

選擇shader爲剛纔新建的DepthMask


我們新建一個空物體,將小偷設爲其子物體,並且新建兩個cube物體。將剛纔的材質添加到這個cube物體上(這裏用到了3D的物體,對於2D遊戲來說有點怪怪的,但是sprite不能加剛纔的材質)

查看圖片查看圖片

那麼在實際的遊戲場景中是怎麼樣的呢?

查看圖片

可以看到其將整個攝像機中渲染的物體都遮住了,露出了後面的天空盒


所以此時需要單獨爲遮罩的物體建立一個深度攝像機

首先先新建一個層thief,將cube和thief的sprite都加入這個層

查看圖片

新建攝像機參數如下

查看圖片

不要忘記在main camera中的cullingMash中去除thief

然後別忘記thief前面窗的圖也要單獨用一個深度攝像機

主要是改clearFlags和cullingMask,注意Depth這個屬性,值越大的就渲染在越前面


效果如下:

查看圖片


最終效果

查看圖片

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章