Unity - 文本元素



Unity 内置的文本 UI 是学习者开始设计 UI 的一个很好的起点,即使它往往会被更强大、更高效的社区构建的资源所掩盖。

对于我们的目的,原生的文本元素足以让我们开始。

文本作为一个独立的 UI 元素,主要是因为该元素的**动态性**。例如,将玩家的当前得分打印到屏幕上,需要将分数的数值转换为字符串,通常通过**.toString()** 方法,然后才能显示。

要插入文本 UI 元素,请转到场景层次结构,**创建 → UI → 文本**。

Create UI Text

一个新的文本元素应该会显示在你的画布区域中。如果我们看看它的属性,我们会看到一些非常有用的选项。

Text element

然而,最重要的是**文本字段**。你可以在该字段中输入你想让文本框显示的内容,但我们想更进一步。

要更改文本的字体,您必须首先将**字体文件**从您的计算机导入到 Unity 中,作为资源。字体不需要主动附加到场景中的任何内容,可以直接从资源中引用。

文本元素也可以通过脚本访问;这就是**动态** UI 的重要性所在。

与其像上一章那样在控制台中输出按钮被点击的次数,不如让我们实际将其打印到游戏屏幕上。为此,我们将打开上一课中的 ButtonBehaviour 脚本,并对其进行一些修改。

using UnityEngine;
using UnityEngine.UI;
public class ButtonBehaviour : MonoBehaviour {
   int n;
   public Text myText;
   public void OnButtonPress(){
      n++;
      myText.text = "Button clicked " + n + " times.";
   }
}

我们做的第一个更改是添加了一个新的命名空间引用。此引用用于处理 Unity 的 UI 组件,因此我们添加了 using **UnityEngine.UI** 行。

接下来,我们创建一个公共的 Text 变量,我们可以在其中拖放我们的 Text UI 元素。

最后,我们使用**myText.text**访问此 UI 元素包含的实际文本。

myText.text

如果我们保存脚本,现在将在我们的 ButtonManager 中看到一个新的 Text UI 元素插槽。只需将包含该 Text 元素的 gameObject 拖放到插槽上,然后点击播放按钮。

New Slot Text UI Element
广告