需要实现透明遮罩功能,如点击任意关闭界面、透明遮挡不让点击等,一般可以添加Image组件,然后将alpha值设置为0。不过,在Unity2018.4.3.6f1及之前的老版本中,这样的做法会增加DC和增加overdraw。
可以继承Graphic重写OnPopulateMesh方法来减少这个方面的性能消耗。
using UnityEngine.UI;
public class EmptyImage : Graphic
{
protected override void OnPopulateMesh(VertexHelper vh)
{
vh.Clear();
}
}
但是在2021.3.19f1中,已经优化这个问题,将Image的alpha值设置为0后,不会增加DC和overdraw。
![1111](https://img-blog.csdnimg.cn/3f3e3fec0c6e47efb095e80687c89b94.png)
![](https://img-blog.csdnimg.cn/e885a66f000f4e3d95a8fafcbf0ea385.png)