【发布时间】:2016-05-25 03:17:18
【问题描述】:
由于我目前正在开发基于 Unity 引擎的游戏,因此我需要一个 PointerEnter EventTrigger 来动态更改我的文本。具体来说:
如果用户在 MainMenu 中将鼠标悬停在文本上,我想要一个指示符,指示他指向哪个选项。
所以从Options 文本应该转向▶ Options。
我所做的是:
Text text;
string ContinueText = "▶ Continue";
void Awake()
{
// Set up the reference.
text = GetComponent<Text>();
}
public void Test()
{
text.text = ContinueText;
}
但如果我将鼠标悬停在文本上,我会得到
NullReferenceException:对象引用未设置为对象的实例
指向text.text = ContinueText;
所以我在网上搜索,发现 void Update() 有时会在 Awake() 之前调用,但错误始终保持不变。 Canvas-Text 被命名为“Text_Options”,以备不时之需。
感谢您帮助我!
【问题讨论】:
-
对象的第一个
Update总是在Awake()之后调用。脚本是否在文本对象上?GetComponent仅在该组件与脚本位于同一对象上时才有效。 -
@GunnarB。是的,脚本位于我要更改的特定文本上。所以脚本被附加到一个 GameObject,它被附加到 EventTrigger。
-
脚本中有
using UnityEngine.UI;? (我想是这样,否则你应该有不同的错误。) -
@GunnarB。你猜对了 :) 如果你的想法不多了,我们可能会在 TeamViewer 见面,你可以看看我的代码吗?
-
添加了一个答案,也许你可以从中找出你做错了什么。