實現原理:實際上就是先利用渲染隊列渲染,然后再利用ZTest,改變渲染的遮擋關系。
PS:Depth Testing:深度測試,也叫深度緩沖。只有最靠近觀察者的物體會被繪制。深度即Z,該值越小表示離觀察者越近,該值越大表示離觀察者越遠。
具體操作步驟:
1、修改NGUI的Unlit - Transparent Colored Shader,將ZWrite改為On。
2、創建3個Panel,分別為叫GameObject、Mask、Cutout,里面分別創建一個Sprite,
3、將Panel的渲染方式改為Explicit,渲染隊列分別改為3000(GameObject)、3002(Mask)、3001(Cutout),這一步會是渲染按照GameObject->Cutout->Mask的順序渲染。
4、調整他們的Z軸:GameObject為300,Mask為200,Cutout為100。這一步會使渲染的遮擋關系發生改變,會使Cutout擋住Mask。我們再把Mask下面的Sprite透明度調為1。最后神奇的事情出現了!