每一个Graphic的组件都需要CanvaseRenderer组件,主要用于Graphic的渲染,这里记录一下它的属性和方法,大部分只有API的翻译,只能等后续熟悉用法了再添加详细解释了。
public int absoluteDepth { get; }
相对于根Canvas的深度,注意这里的Depth和Camera的Depth没有关系。且在没有开始渲染时为-1,例如
2个图片的不同在于Image2和Image3所在的Canvas的overrideSorting是否为true。
public int relativeDepth { get; }
与absoluteDepth类似,是相对于父Canvse的深度。
public bool hasPopInstruction { get; set; } 启用“渲染堆栈”弹出绘制调用。
public int materialCount { get; set; } 该渲染器可使用的材质数量。
public int popMaterialCount { get; set; } 该渲染器可使用的材质数量。内部用于遮罩。
public bool hasMoved { get; } 如果发生的任何更改会使生成的几何形状的位置无效,则为 true。
public bool hasRectClipping { get; } 如果在该渲染器上启用了矩形裁剪,则为 true。
public bool cull { get; set; } 指示是否忽略该渲染器发射的几何形状。
public bool cullTransparentMesh { get; set; } 指示当网格的每个顶点的顶点颜色 Alpha 接近零时,是否可以忽略此渲染器发射的几何形状。
public static void AddUIVertexStream(List<UIVertex> verts, List<Vector3> positions, List<Color32> colors, List<Vector2> uv0S, List<Vector2> uv1S, List<Vector2> uv2S, List<Vector2> uv3S, List<Vector3> normals, List<Vector4> tangents);
接受顶点流并将其拆分为相应的数组(positions、colors、uv0s、uv1s、normals 和 tangents)。
public static void CreateUIVertexStream(List<UIVertex> verts, List<Vector3> positions, List<Color32> colors, List<Vector2> uv0S, List<Vector2> uv1S, List<Vector2> uv2S, List<Vector2> uv3S, List<Vector3> normals, List<Vector4> tangents, List<int> indices);
将一组顶点分量转换为 UIVertex 流。
public static void SplitUIVertexStreams(List<UIVertex> verts, List<Vector3> positions, List<Color32> colors, List<Vector2> uv0S, List<Vector2> uv1S, List<Vector2> uv2S, List<Vector2> uv3S, List<Vector3> normals, List<Vector4> tangents, List<int> indices);
给定一个 UIVertex 列表,将流拆分为其分量类型。
以下是公共方法,直接贴图吧,后续填坑...