上一节,我们简单概括了Unity3D编辑器中Text组件简要介绍。具体详情链接为:Unity3d中UGUI组件精简复盘(六)Text组件,话不多说,我们直接进入正题~ 今天我们简要概括复盘的组件便是Mask组件啦~ Mask组件,其实就是遮罩,也就是遮盖在某物上面,层级在上,以下的UI界面都会被遮住。
Mask组件
Mask:遮罩,可以作用于3D物体
Rect Mask:只能作用于同平面的2D物体
区别:Mask遮罩,可以作用于3D物体,Rect Mask只能作用于同平面的2D物体
Unity遮罩中为什么我们要避免使用Mask??
因为添加Mask会增加Drawcall,会影响性能,同时Mask不利于层级的合并。
当没有使用Mask的时候,可能只需要一个Drawcall既可以绘制出UI的渲染效果,但是当我们添加了Mask以后,Mask会作为单独的一个层级来渲染绘制,其他的UI也会作为单独的一个层级来绘制。
添加Rect Mask的话,没有增加DrawCall ,因为Rect Mask没有使用模板缓冲区,没有它额外的DrawCall,所以说对性能来说没什么影响。但是存在不稳定因素。至于存在的不稳定因素,目前博主也暂时不是很了解,并没有接触到这类的问题。
解决方案:自己写一个遮罩 博主自己没有在shader方面有太多的了解,但是看到过一篇很有用的文章,希望对你们能有所帮助:来自简书:sylo作者的文章:Unity一种更高效的遮罩实现
更新也许会迟到,但一定会到哈。
如果博客博友对这个章节有更多的内容想要了解的,可以评论哈,等这一个章节结束后,我会根据评论反馈以及自己的能力,将评论中反馈的内容在下一个计划中去制作出对应的内容的哈~
作者:ProMer_Wang
链接:https://blog.csdn.net/qq_43801020/article/details/117611915
本文为ProMer_Wang的原创文章,转载请注明原文出处,欢迎转载!
|