一、简介
Graphic主要是用来控制图片的显示,设置mesh的顶点和uv数据,提供给VertexHelper和CanvasRenderer进行mesh绘制。所以有时候制作一些角色头顶的血条使用动态创建mesh的方法进行绘制。
Graphic是一个抽象类,是MaskableGraphic(可遮罩图像)的基类,而MaskableGraphic是RawImage、Image和Text的基类。
二、功能
1、添加的特性
[DisallowMultipleComponent]//一个对象只能挂载一个Graphic类组件,即使是继承Graphic也是不行
[RequireComponent(typeof(CanvasRenderer))]//需要CanvasRender组件,用来绘制mesh
[RequireComponent(typeof(RectTransform))]
[ExecuteInEditMode]//编辑器模式下也运行[ExecuteAlways]类似
Unity支持通过[ExecuteInEditMode]
或[ExecuteAlways]
两种参数使脚本在Play Mode以外的状态下被执行,[ExecuteEditMode]
支持脚本在Edit Mode下运行,[ExecuteAlways]
是在Unity2018.3及以后的版本新加入的功能,能够支持脚本一直运行。(ps:由于[ExecuteInEditMode]
并没有考虑Prefab Mode,严格意义上讲Prefab Mode也属于Edit Mode,所以这个功能会逐渐被Unity弃用,最后应该会被[ExecuteAlways]
所替代)
2、重写UIB