需要实现透明遮罩功能,如点击任意关闭界面、透明遮挡不让点击等,一般可以添加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。

