如何使用脚本在Unity UI中更改占位符文本?

时间:2015-04-16 17:36:10

标签: c# user-interface input unity3d

对于我的项目,默认值是根据外部输出计算的,这些值可以使用新Unity UI中的输入字段进行更改。如果未更改值,则计算后应显示灰色占位符。我真的无法弄清楚如何通过脚本更改占位符文本,甚至无法在任何地方找到解决方案。我试过这个:

gameObject.GetComponent<InputField>().placeholder = uv.value;

脚本附加到给定的输入字段游戏对象。但是要在输入字段中获取写入值,我使用以下代码行:

uv.value = gameObject.GetComponent<InputField>().text;

工作正常。我错过了什么?一些帮助将不胜感激,写这里是我的最后一招。谢谢你转发!

3 个答案:

答案 0 :(得分:9)

占位符只是一个Text组件。您可以通过以下方式更改文字:

gameObject.GetComponent<InputField>().placeholder.GetComponent<Text>().text = "Something";

请注意,GetComponent<InputField>().placeholder是一个Graphic组件,它不是您正在寻找的机器人:)

答案 1 :(得分:1)

这对我有用,但请记住将占位符游戏对象分配给输入字段设置->占位符,否则您会得到空错误。

TextMeshProUGUI placeholder = (TextMeshProUGUI)userNameInput.placeholder;

placeholder.text = "你好";

答案 2 :(得分:0)

由于Text继承自Graphic类,因此您也可以向下投影placeholder对象。 这样的事情也可以。

Graphic graphic = gameObject.GetComponent<InputField>().placeholder;
((Text)graphic).text = "Hello";