5-14 添加高度数字显示和笔刷大小数字显示

  在上一章中,我们完成了坐标显示UI的关凯功能,在这一章中我们将对现有的UI作出一些调整和补充。现在的地图编辑器UI中,基本所有的元素和选项都混在一起,没有进行分类,视觉效果上并不美观。这里我们创建一个Image组件,宽度设置为100,高度设置为1,分别在颜色选择UI、高度选择UI、笔刷选择UI下方插入并调整它们之间的间距。这样我们对地图编辑器UI中的各项进行了分类,使视觉效果更佳清晰。如下图:

  接下来,我们在通过Slider组件调整高度和笔刷大小的时候,并不能看到确切的数值,这里我们首先在HexMapEditor.cs中添加两个Text类型的变量,用于获取UI中高度和笔刷大小的文本,在文字后方加入对应的数值显示。代码如下:

HexMapEditor.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
using UnityEngine.UI;

public class HexMapEditor : MonoBehaviour
{
//显示当前选择高度的文本
[SerializeField] private Text elevationText = null;
//显示当前笔刷大小的文本
[SerializeField] private Text brushSizeText = null;



private void Awake()
{


//设置高度和笔刷大小默认显示数值
elevationText.text = "Elevation: 0";
brushSizeText.text = "Brush Size: 0";
}



public void SetElevation(float elevation)
{


//在改变高度的同时,更新显示的文字信息
elevationText.text = "Elevation: " + elevation.ToString();
}

public void SetBrushSize(float size)
{


//在设置笔刷大小的同时,更新显示的文字信息
brushSizeText.text = "Brush Size: " + size.ToString();
}
}

  最后,将ElevationToggle子物体中的Label与BrushSize_Text拖入对应Hex Map Editor变量位置即可。效果如下:

  至此,我们就完成了使用多个地图块拼接大地图,以及对应的摄像机控制、高度与颜色修改功能分离、添加笔刷等功能。在接下来的章节中,我们将为现在的地图添加更多的环境细节。

Github代码