提问人:DiogoSaraiva 提问时间:5/5/2015 最后编辑:StevenDiogoSaraiva 更新时间:5/5/2015 访问量:951
如何在 Unity 4.6 中通过 C# 脚本更改 2 个不同的 UI 文本
How change 2 different UI text via C# script in Unity 4.6
问:
我正在尝试在 monodevelop 中使用 C# 更改 Unity 4.6.3 中的两个不同的文本字段。
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
public class NumberWizard : MonoBehaviour {
int max;
int min;
int guess;
public Text GuessUI;
public Text TextUI;
[...truncated...]
GuessUI.text = "500";
TextUI.text = "Welcome to Number Wizard!";
}
我收到此错误:
NullReferenceException: Object reference not set to an instance of an object NumberWizard.Start () (at Assets/Scripts/NumberWizard.cs:16)
我做错了什么?
答:
1赞
Turker Tunali
5/5/2015
#1
目前尚不清楚您想要实现的目标,但是如果您想使用依赖于某些东西来更新文本,那么您应该使用IF语句。如果要更新 2 个文本,则 NumberWizard 脚本应采用 2 个文本参数。或者,您可以使用 GameObject.FindByName() 方法。 例:
TextUI = GameObject.FindByName("TextUI");
GuessUI = GameObject.FindByName("GuessUI");
TextUI.Text = "Test1";
GuessUI.Text = "Test2";
注意:您的代码和屏幕截图不匹配。如果您有 2 个文本组件,则 Unity 编辑器应该会显示它们。
评论
0赞
Turker Tunali
5/6/2015
对不起,我当前的计算机没有 Unity。如果有的话,你能告诉我错误代码吗?
0赞
DiogoSaraiva
5/5/2015
#2
我不知道为什么这不起作用,但现在已经解决了:
public Text GuessUI;
public Text TextUI;
TextUI.text = "Welcome to Number Wizard!";
GuessUI.text = "500";
我在检查器中设置了这个:
评论
Start