3-13 Slope-Cliff类型三角形连接区域的判断
在之前的章节中,我们完成了SSF
及其变体的情况中,三角形连接区域的阶梯化构建。SSF
及其变体,都是高度相差1的情况,在这章中我们来解决地图单元之间高度差大于1的情况。
Slope-Cliff连接类型有两种情况,第一种是:bottom地图单元高度最低,left地图单元比bottom地图单元高1个单位,right地图单元比Left地图单元高1个单位。如下图:
第二种是:bottom地图单元高度最低,left地图单元比bottom地图单元高1个单位,right地图单元比Left地图单元高1个以上单位。如下图:
这两种组合的抽象图如下图所示:
接下来回到代码部分,构建Slope-Cliff的三角形连接区域的思路与SSF
连接区域类似,我们在HexMesh.cs
脚本中创建一个新的方法,来构建三角形连接区域,代码如下:
1 | /// <summary> |
我们回到TriangulateCorner
方法中,在这里添加对TriangulateCornerTerracesCliff
的调用。代码如下:
1 | private void TriangulateCorner( |
这样,我们就完成了Slope-Cliff三角形连接区域的判断。不过因为left的地图单元和right的地图单元,高度差可能为1,也可能大于1,所以Slope-Cliff三角形连接区域需要分类两个步骤进行构建,这两部分的构建,在接下来的章节实现。