我需要通过其值获取文本GameObject。 例如: 文本很多,我只需要说“你好”,而不是名字,值,就可以了。
//PseudoCode
string = "Hello";
GameObject.FindObjectsByValue("Hello")
答案 0 :(得分:1)
没有内置功能,因此您需要手动执行。这取决于您的情况。通常,您必须:
如果您需要 一次或两次 查找该单词,则可以执行以下操作:
Text[] array = GameObject.FindObjectsOfType<Text>();
foreach (var x in array)
{
if (string.Compare(x.text,"Hello") == 0)
{
// The stuff to do here
}
}
如果您需要多次寻找该 单词 ,则需要在某些变量中存储对这些GameObject
的引用,并在需要时随时访问。这是因为FindObjectsOfType<>();
是相当昂贵的操作,因此我们需要尽可能少地进行操作。这样的事情应该起作用:
private Text[] array;
private void Awake()
{
Text[] array = GameObject.FindObjectsOfType<Text>();
}
private void Update()
{
foreach (var x in array)
{
if (string.Compare(x.text, "Hello") == 0)
{
// The stuff to do here
}
}
}