UGUI-遮罩 (Mask)
2020-07-15 08:56 作者:unity_某某師_高錦錦 | 我要投稿
__遮罩__不是可見的 UI 控件,而是一種修改控件子元素外觀的方法。遮罩將子元素限制(即“掩蓋”)為父元素的形狀。因此,如果子項比父項大,則子項僅包含在父項以內(nèi)的部分才可見。



描述
遮罩的常見用法是使用面板 (Panel) 對象(菜單:__GameObject > Create UI > Panel__)作為“框架”顯示大型圖像的一小部分。為實現(xiàn)此目的,可先將圖像設置為面板對象的子項。應調(diào)整圖像的位置,使應該可見的區(qū)域直接位于面板區(qū)域的后面。

然后,將一個遮罩組件添加到面板。面板外面的子圖像區(qū)域?qū)⒆兊貌豢梢?,因為這些區(qū)域被面板的形狀所掩蓋。

如果圖像隨后移動,則只有面板暴露的部分可見??赏ㄟ^滾動條來控制移動,從而創(chuàng)建可滾動的地圖查看器之類的效果。
實現(xiàn)
應使用 GPU 的模板緩沖區(qū)來實現(xiàn)遮罩。
第一個遮罩元素將 1 寫入模板緩沖區(qū)。?遮罩下面的所有元素在渲染時進行檢查,僅渲染到模板緩沖區(qū)中有 1 的區(qū)域。 *嵌套的遮罩會將增量位掩碼寫入緩沖區(qū),這意味著可渲染的子項需要具有要渲染的邏輯和模板值。
標簽: