这里制作的小工具,功能有点单薄,只能查看顶点的顺序。
在写CubeMesh的时候,需要查看顶点的位置信息和uv信息。
因此,添加这两个功能:
(1) 添加查看顶点位置和uv信息
在MeshViewerEditor中,添加两个方法,来显示顶点位置信息和uv信息。因为目前只会在简单的mesh查看时用到,所以不必太考虑性能什么的,先有再追求。以下是新加的代码:1
2
3
4
5
6
7
8
9
10// 显示顶点位置Str
private void AddVerticeStr(ref StringBuilder sb, Vector3 vert)
{
sb.Append(",vertice:" + vert);
}
// 显示uv信息Str
private void AddUVStr(ref StringBuilder sb,Vector2 uv)
{
sb.Append(",uv:" + uv);
}
(2) 兼容顶点数量和uv数量不同的情况
在新建Mesh的过程中,先添加顶点,之后才会给每个顶点添加uv坐标。所以,有可能uv坐标的数量和顶点数量不一致。这个时候,兼容一下。修改显示uv信息的方法:1
2
3
4
5
6
7private void AddUVStr(ref StringBuilder sb, ref List<Vector2> uvList, int index)
{
if (uvList.Count > index)
{
sb.Append(",uv:" + uvList[index]);
}
}
嗯,完成了,看一下运行效果:
(3) 添加是否显示信息的选项
有时候,希望只看顶点信息或者uv信息什么的,不要全部显示。
所以,在Inspector中添加是否显示信息的选项,就是这样:
Unity中的Editor类,重写OnInspectorGUI()方法,添加自己想要的选项。代码如下:1
2
3
4
5
6
7
8
9
10
11private bool showInfo = true;
private bool showUV = true;
private bool showVertice = true;
public override void OnInspectorGUI()
{
base.OnInspectorGUI();
showInfo = GUILayout.Toggle(showInfo, "Show Info");
showVertice = GUILayout.Toggle(showVertice, "Show Vertice");
showUV = GUILayout.Toggle(showUV, "Show UV");
}
然后使用这几个布尔值就可以了。
(4) 完整代码
1 | using UnityEditor; |
只看index和uv效果:
(5) 最后
生产工具决定生产力。定制工具比不可少。之后还会根据需要进行工具的更新。
积跬步以至千里。
以上。