UGUI源码解析——BaseMeshEffect
  gEMN1CQh1PXt 2023年11月02日 41 0


一:前言

BaseMeshEffect继承了IMeshModifier,是用于实现网格效果的抽象基类,可以在子类继承并重写ModifyMesh方法去修改顶点数据,它与IMeshModifier没有太大的区别,只不过BaseMeshEffect类中定义了属性m_Graphic以及实现了IMeshModifier接口

Outline和Shadow都继承或间接继承了BaseMeshEffect

我们实现自己的网格效果时也尽量继承BaseMeshEffect类去实现而不是继承IMeshModifier接口


二:源码解析

UGUI源码解析——BaseMeshEffect_抽象基类

可以子类继承BaseMeshEffect类重写ModifyMesh方法去修改顶点数据


UGUI源码解析——BaseMeshEffect_抽象基类_02

在Graphic类的UpdateGeometry方法中首先调用了OnPopulateMesh方法将元素的顶点、颜色、UV等信息暂存到m_VertexHelper中,接着遍历身上继承了IMeshModifier的组件去调用ModifyMesh方法去更新m_VertexHelper数据,所以网格的绘制既可以写在OnPopulateMesh方法中也可以写在ModifyMesh方法中,只不过UGUI抽离出来一个IMeshModifier接口,它希望我们使用IMeshModifier这个接口来实现一些网格效果的变化,如阴影、描边、镜像等


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论