Unity UI按钮提示 - 通过脚本更改文本标签

发布时间:2019-05-26 14:08 来源:http://www.weiceshi.cc

在使用Unity的新UI处理项目时,我采用了一些围绕使用Button元素的约定,我认为其他开发人员会觉得有用。特别是,我想谈谈如何轻松访问按钮的文本标签。如果您有使用立即模式GUI的经验,您会发现使用新UI的方式不同。这是我尝试简化流程。

请注意,UI Button预制实际上由两个不同的GameObject组成 - 实际的Button元素和UI Text元素作为其子元素。要访问按钮和文本,您必须将每个按钮放在单独的变量中:

  public Button myButton;public Text myButtonText;  

虽然这通常不是问题,但是一旦通过检查员将实例分配给这些变量,就会很乏味。对于每个按钮,您必须进行两次分配 - 一个用于按钮本身,另一个用于文本元素。这容易出错 - 可能会错过分配两者中的一个,或者将不匹配的Button和Text GameObjects分配给变量。

为了解决这个问题,我们可以编写一些代,允许我们通过单个MonoBehaviour访问Button和Text元素。这是:

  public class ButtonAndText:MonoBehaviour {公共按钮;公共文本文本;void Awake(){button = GetComponent< Button> ();foreach(变换中的变换){//可能不是很明显text = t.GetComponent< Text> ();}}}  

解决一个简单问题的简单方法!其中大部分都是直截了当的 - 创建一个新的MonoBehaviour来聚合Button和Text组件。但是这里可能不明显的是我们如何获得Text元素。我们需要注意:

Text GameObject是Button GameObject的唯一子项,并且.........可以通过迭代Transform组件来访问GameObject的子项。

因此,通过将这个MonoBehaviour放在我们的Button GameObject上,我们可以自动获得对Button / Text对的引用,同时最大限度地降低人为错误的风险并减少我们必须对分配进行的手动工作。要在项目中轻松使用它,实例化一个默认的Button对象,将ButtonAndText组件添加到它,然后将结果保存为预制。无论何时需要按钮,都可以使用此预制件。在你的代中,你可以参考这样的按钮:

  public ButtonAndText myButton;  

并像这样纵它们:

  myButton.button.interactable = false;myButton.text.text =“你好!”;  

使用少量代,我们可以用较少的工作来作按钮及其相应的文本标签。

下载源代

ButtonAndText组件的项目文件夹可以下载,作为我之前发布的一堆代示例的一部分(从Unity网络示例开始,但现在正在更新以包含其他内容)。包含在项目文件夹中的是一个示例场景,它演示了ButtonAndText组件以及一些与按钮相关的示例(单击并按住),我将很快写入文章。项目文件夹中还包含可用于您自己项目的按钮预制件,因此如果您对这些项目感兴趣,请务必抓取源代下载。

本文网址:http://www.weiceshi.cc/180zsfg/20190526/118.html

上一篇:特写为什么我们需要更多无聊的游戏
下一篇:DS获得了吉他英雄小工具


相关文章: