对于我的项目,默认值是根据外部输出计算的,这些值可以使用新Unity UI中的输入字段进行更改。如果未更改值,则计算后应显示灰色占位符。我真的无法弄清楚如何通过脚本更改占位符文本,甚至无法在任何地方找到解决方案。我试过这个:
gameObject.GetComponent<InputField>().placeholder = uv.value;
脚本附加到给定的输入字段游戏对象。但是要在输入字段中获取写入值,我使用以下代码行:
uv.value = gameObject.GetComponent<InputField>().text;
工作正常。我错过了什么?一些帮助将不胜感激,写这里是我的最后一招。谢谢你转发!
答案 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";