5-13 坐标显示UI开关
在上一章中,我们创建了笔刷功能,可以通过选择笔刷尺寸,来批量修改地图单元的颜色或高度。在这一章中,我们将做一个开关,用来隐藏或显示地图单元上的UI坐标。这是因为在之后的编辑地图中,我们并不需要时刻看到这些UI坐标,它们的存在有时候反而会妨碍我们对地图的编辑和查看。
由于整个大地图是由多个地图块拼接而成的,每一个地图块都有自己的canvas,所以需要在HexGridChunk.cs
中添加一个ShowUI
方法,来控制当前地图块的UI显示和隐藏。代码如下:
1 | public class HexGridChunk : MonoBehaviour |
同时,在Awake
方法中,默认关闭UI。代码如下:
1 | private void Awake() |
在地图编辑器中是通过一个按钮控制所有坐标UI的显示和隐藏,所以这里我们要在HexGrid.cs
中也同样添加一个ShowUI
方法,这个方法遍历所有的地图块,并控制其坐标UI的显示和隐藏。代码如下:
1 | /// <summary> |
在HexMapEditor.cs
中,也同样添加一个方法,供UI调用,将UI的状态传递至HexGrid.cs
中。代码如下:
1 | /// <summary> |
回到Unity中,我们在地图编辑器中创建一个Toggle
组件,并将HexMapEditor.ShowUI
方法绑定到组件上即可。如下图:
至此我们就完成了坐标显示UI开关的功能了,在程序启动时,是默认关闭所有UI显示的,通过点击最下方的Label
开关,可以控制坐标显示UI的开启和关闭,从而达到印象或者显示全部坐标的效果。
在下一章中,我们将会对现有的UI作出一些修改,例如现在显示高度和笔刷范围,并不能看到数值,这在编辑的时候会很不方便。