Unity - MeshMaker超强模型编辑器(一)

时间:2024-05-22 11:57:26

前言

介于之前第二篇博客MeshVertex(网格编辑器)各种劣质,所以目前借助于其思想升华版(只是思想,实现细节几乎迥异)的MeshMaker诞生了,它实现了以顶点层级、边层级、面层级的网格编辑模式,以及更加高级的针对顶点层级的删除、克隆、目标无缝焊接等模式。后续的版本中还将会更加完善MeshMaker,期待有兴趣的同学关注。

性能优化

  • 完全摈弃了MeshVertex所使用的看起来很方便的Sphere球体作为顶点代替物的超级拙劣手段,以鼠标射线投射截取目标面的方式,极致优化使编辑强度不再跟模型顶点数量划勾。
  • 使用自定义数据结构仅在模型网格产生结构性变化时(顶点删除、顶点克隆、顶点焊接)重新组成网格,面结构不再是单纯的只保存它所代表的三个顶点的索引的方式,这种官方的方式会导致进一步编辑的复杂化,以及无关数据的遗漏。
  • 顶点的删除、焊接等操作更加正规(曾经MeshVertex只是假删除),此操作会完全删掉你不想要的顶点,真正意义上的优化网格,而不会存在类似于MeshVertex删除顶点之后的UV丢失,导致贴图丢失。
  • 更加人性化的操作,借助于场景控制柄工具(Tool),可以对任意顶点、边、面进行移动、旋转、缩放等操作。
  • 更加简洁的操作方式,只需要一个MeshMaker脚本,挂载到任意静态模型上便可以进行编辑,所有逻辑非常简单明了的集结在MeshMaker脚本中,极易理解(我一向都是觉得只要能实现我的思路,定义的类越少越好)。

开始使用

  • 为目标添加MeshMaker脚本(路径添加:Component/模型网格编辑器/MeshMaker)

顶点编辑

  • MeshMaker支持顶点层级的编辑:
    Unity - MeshMaker超强模型编辑器(一)

  • 在场景中鼠标悬于目标顶点上,鼠标附近顶点都会高亮提示,显示为高亮颜色(HoverColor),点击鼠标右键以选中当前距离鼠标最近的顶点,显示为高亮颜色(CheckedColor),此时按W键可进入拖拽移动模式,按E键可进入拖拽旋转模式,按R键可进入拖拽缩放模式:
    Unity - MeshMaker超强模型编辑器(一)

  • MeshMaker支持删除顶点:选中顶点后,点击目标删除按钮,被删除的顶点以及与之关联的所有面都将被完全删掉。
    Unity - MeshMaker超强模型编辑器(一)

  • MeshMaker支持焊接顶点:选中顶点后,点击目标焊接按钮,同时会在场景中出现进一步选择提示,以选择目标顶点之后,将当前选中顶点焊接至目标顶点,同时当前顶点的所有关联面都会重新指向新的顶点,继而再删掉当前顶点。
    Unity - MeshMaker超强模型编辑器(一)

焊接之后:
Unity - MeshMaker超强模型编辑器(一)

  • MeshMaker支持克隆顶点:选中顶点后,点击目标克隆按钮,同时会在场景中出现进一步选择提示,以选择参照顶点之后,在当前选中顶点及参照顶点的连线上克隆新的顶点(克隆模式的当前选中顶点与参照顶点必须存在直接连线)。
    Unity - MeshMaker超强模型编辑器(一)

克隆之后:
Unity - MeshMaker超强模型编辑器(一)

边编辑

  • MeshMaker支持边层级的编辑:
    Unity - MeshMaker超强模型编辑器(一)

  • 在场景中鼠标悬于三角边上,鼠标附近的边都会高亮提示,显示为高亮颜色(HoverColor),点击鼠标右键以选中当前距离鼠标最近的边,显示为高亮颜色(CheckedColor),此时按W键可进入拖拽移动模式,按E键可进入拖拽旋转模式,按R键可进入拖拽缩放模式:
    Unity - MeshMaker超强模型编辑器(一)

面编辑

  • MeshMaker支持面层级的编辑:
    Unity - MeshMaker超强模型编辑器(一)

  • 在场景中鼠标悬于三角面上,鼠标附近的面都会高亮提示,显示为高亮颜色(HoverColor),点击鼠标右键以选中当前鼠标位置的面,显示为高亮颜色(CheckedColor),此时按W键可进入拖拽移动模式,按E键可进入拖拽旋转模式,按R键可进入拖拽缩放模式:
    Unity - MeshMaker超强模型编辑器(一)

Unity - MeshMaker超强模型编辑器(一)

保存Mesh

  • 在编辑完毕之后点击Save Mesh按钮可以保存当前编辑的网格至本地,要使用的话可以直接拖拽给MeshFilter组件。
    Unity - MeshMaker超强模型编辑器(一)

结束编辑

  • 点击Edit End按钮以结束编辑,在结束以前请确保你所需要的网格数据已经保存。
    Unity - MeshMaker超强模型编辑器(一)

编辑器中层次结构

  • 简单明了的类结构。
    Unity - MeshMaker超强模型编辑器(一)

目前的问题

  • 鼠标右键选择会与鼠标右键旋转场景视角冲突。
  • 编辑模式不支持多选。

源码链接

——by MeshEditor