引言
VertexHelpr是UGUI中的代码,在自定义UI控件的时候,需要大量用到。
由于我之后的工作可能会大量用到自定义UI控件,所以今天就先了解了一下。
基本用法
VertexHelpr其实用法很简单,就几个方法而已,它主要用来帮助我们快速创建网格。
我就废话少说了,直接上码。基本的使用可以参考这篇文章:Unity_UGUI|通向UGUI源码的入口VertexHelper。
// 创建一个正方形面片
VertexHelper vh = new VertexHelper();
vh.Clear();
// 添加顶点
vh.AddVert(new Vector3(0, 0, 0), Color.red, new Vector2(0, 0));
vh.AddVert(new Vector3(1, 0, 0), Color.green, new Vector2(1, 0));
vh.AddVert(new Vector3(1, 1, 0), Color.yellow, new Vector2(1, 1));
vh.AddVert(new Vector3(0, 1, 0), Color.cyan, new Vector2(0, 1));
// 设置三角形顺序
vh.AddTriangle(0, 2, 1);
vh.AddTriangle(0, 3, 2);
// 将结果展示出来
MeshFilter meshFilter = gameObject.GetOrAddComponent<MeshFilter>();
Mesh mesh = new Mesh();
mesh.name = "Quad";
vh.FillMesh(mesh);
meshFilter.mesh = mesh;
MeshRenderer meshRenderer = gameObject.GetOrAddComponent<MeshRenderer>();
meshRenderer.material = material;
meshRenderer.shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off;
meshRenderer.receiveShadows = false;
效果展示
最后再来看看效果。
gif录制起来,效果看起不好。具体看源码运行效果吧。
源码
放到这儿了。
链接:https://pan.baidu.com/s/1y3BpRru_BeFfYygUGxSG5g
提取码:vcr5