如何在 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)
我做错了什么?
不太清楚你想要实现什么,但如果你想更新文本依赖于某些东西,那么你应该使用 IF 语句。如果要更新 2 个文本,则 NumberWizard 脚本应采用 2 个文本参数。或者,您可以使用 GameObject.FindByName() 方法。
示例:
TextUI = GameObject.FindByName("TextUI");
GuessUI = GameObject.FindByName("GuessUI");
TextUI.Text = "Test1";
GuessUI.Text = "Test2";
注意:您的代码和屏幕截图不匹配。如果您有 2 个文本组件,Unity 编辑器应该会显示它们。
我不明白为什么那不起作用,但现在解决了:
public Text GuessUI;
public Text TextUI;
TextUI.text = "Welcome to Number Wizard!";
GuessUI.text = "500";
我在检查器中设置了这个:
我正在尝试在 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)
我做错了什么?
不太清楚你想要实现什么,但如果你想更新文本依赖于某些东西,那么你应该使用 IF 语句。如果要更新 2 个文本,则 NumberWizard 脚本应采用 2 个文本参数。或者,您可以使用 GameObject.FindByName() 方法。 示例:
TextUI = GameObject.FindByName("TextUI");
GuessUI = GameObject.FindByName("GuessUI");
TextUI.Text = "Test1";
GuessUI.Text = "Test2";
注意:您的代码和屏幕截图不匹配。如果您有 2 个文本组件,Unity 编辑器应该会显示它们。
我不明白为什么那不起作用,但现在解决了:
public Text GuessUI;
public Text TextUI;
TextUI.text = "Welcome to Number Wizard!";
GuessUI.text = "500";
我在检查器中设置了这个: