【Unity】如何讓 Sprite Mask 邊緣是漸層的 Soft Mask

Sprite Mask 很好,但邊緣也太粗糙了吧?

這陣子進行中的專案有一個「窺探孔」的效果要做,
就是視野之外要看不見,這邊查了教學之後進行的方式是建立一個 圓形的 Sprite Mask,
然後把其他的 Sprite 的 Mask Interaction 改成 Visible Inside Mask

結果呈現的效果就如下 邊緣整個顆粒狀

嘗試把 Mask 換成一個有 alpha 值的漸層淡出圓形是沒有用的,設定上會用一個 threshold 來設定,超過就看得到,沒超過就一樣全黑,是沒有漸層效果的。

那要如何做出像下圖一樣的漸層淡出呢?

解法

就…在可顯示的範圍上面再多擋一個漸層的圓
Sprite Mask 底下多放一個 Sprite Renderer,並且使用下面的素材

這樣的好處是只要改面 Sprite Mask 的 Size
就可以同步放大縮小摟

參考資料

關於

登山嚮導 / IT / 武術/網頁工程 - 貪多而正努力咀嚼的人生小吃貨