我将如何从 Unity 5 场景中的所有输入字段中获取文本?
How would I go about getting the text from all input fields in a scene in Unity 5?
截至目前,我的场景中有两个输入字段和一个按钮。单击按钮时,我想检索两个输入字段的内容。我可以通过在它们按钮的点击功能上添加相同的脚本两次来分别获取每个内容。但是,我想在只使用一个脚本的同时获得两个输入字段。
我试过使用 GetComponents,但我想我不明白它是如何工作的。我假设 GetComponents 会获取场景中的所有输入字段并将它们保存到一个数组中。然后我可以循环遍历每个索引并获取每个输入的文本 属性。这不正确吗?
谢谢!
你可以做的是使用 GetComponentsInChildren...将所有带有组件 InputField 的游戏对象放入父游戏对象中,然后将脚本添加到父游戏对象...
然后做类似的事情:
---编辑:
好吧,我玩了一些 Inputfields ...所以如果你注意的话,你的 inputfield 有 2 个子对象,一个叫做 "Placeholder" 另一个叫做 "Text" 并且它们都有一个 Text 组件,所以你需要做的是:
List<string> textFromMyInputs = new List<string>();
void GetAllTextFromInputFields()
{
foreach(InputField inputField in gameObject.GetComponentsInChildren<InputField>())
{
foreach (Text text in inputField.GetComponentsInChildren<Text>())
{
if (text.gameObject.name != "Placeholder")
textFromMyInputs.Add(text.text);
}
}
foreach (string s in textFromMyInputs)
{
Debug.Log(s);
}
}
已经过测试,对我有用....
截至目前,我的场景中有两个输入字段和一个按钮。单击按钮时,我想检索两个输入字段的内容。我可以通过在它们按钮的点击功能上添加相同的脚本两次来分别获取每个内容。但是,我想在只使用一个脚本的同时获得两个输入字段。
我试过使用 GetComponents,但我想我不明白它是如何工作的。我假设 GetComponents 会获取场景中的所有输入字段并将它们保存到一个数组中。然后我可以循环遍历每个索引并获取每个输入的文本 属性。这不正确吗?
谢谢!
你可以做的是使用 GetComponentsInChildren...将所有带有组件 InputField 的游戏对象放入父游戏对象中,然后将脚本添加到父游戏对象...
然后做类似的事情:
---编辑: 好吧,我玩了一些 Inputfields ...所以如果你注意的话,你的 inputfield 有 2 个子对象,一个叫做 "Placeholder" 另一个叫做 "Text" 并且它们都有一个 Text 组件,所以你需要做的是:
List<string> textFromMyInputs = new List<string>();
void GetAllTextFromInputFields()
{
foreach(InputField inputField in gameObject.GetComponentsInChildren<InputField>())
{
foreach (Text text in inputField.GetComponentsInChildren<Text>())
{
if (text.gameObject.name != "Placeholder")
textFromMyInputs.Add(text.text);
}
}
foreach (string s in textFromMyInputs)
{
Debug.Log(s);
}
}
已经过测试,对我有用....