Unity - 文本元素

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

就我们的目的而言,原始的文本元素足以开始使用。

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

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

创建 UI 文本

新的文本元素应显示在您的 Canvas 区域中。如果我们查看其属性,我们将看到一些非常有用的选项。

文本元素

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

要更改文本的字体,您必须首先将字体文件作为资产从计算机导入 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 元素的游戏对象拖放到插槽上,然后点击"播放"按钮即可。

新插槽文本 UI 元素