一、简介
Shadow组件是通过IVertexModifier给graphic(文字或者和图片)的对象增加outline效果,实现的细节是通过给文字或者图片 mesh添加顶点来实现。而Outline是在对象四角上各添加了一个Shadow。由此我们可以得知,Outline的(额外)消耗是Shadow的四倍,所以还是需要谨慎使用。继承BaseMeshEffect基类
二、功能讲解
1、BaseMeshEffect
1、是一个抽象类,继承了IMeshModifier接口,接口允许在传递给CanvasRenderer前,修改图形的顶点,从而修改实现这个接口的GameObject的Mesh。
2、ModifyMesh是一个抽象方法,会在子类中实现。它在OnEnable、OnDisable和OnDidApplyAnimationProperties的unity事件发生时,会调用Graphic的SetVerticesDirty方法(设置顶点数据为Dirty,重建图像时重新生成顶点数据)
public virtual void ModifyMesh(Mesh mesh)
{
using (var vh = new VertexHelper(mesh))
{
ModifyMesh(vh);
vh.FillMesh(mesh);
}
}
public abstract void ModifyMesh(VertexHelper vh);
2、ModifyMesh()
该方法在BaseMeshEffect中定义,会在Graphic的DoMeshGeneration()函数中比直接执行。也就是每次Gr