C# 在Unity3D中,输入字段被视为占位符

C# 在Unity3D中,输入字段被视为占位符,c#,unity3d,input-field,C#,Unity3d,Input Field,我的目标:将sqlite数据库中的值作为文本放入inputField。我希望用户能够更新该数据库的记录/值。实际上,我正在尝试制作一款类似iPhone上的note的note应用程序 我的问题:文本显示在文本和内容字段内的字段中,包括输入光标/插入符号。当用户单击文本字段时,它会将所有内容重置为空 我尝试的内容:我创建了一个脚本,将inputField中文本的值更改为从数据库中获取的值。文本将按预期更新。然后,只要我或其他用户按下inputField,值就会消失,类似于占位符的工作方式。但是,我希

我的目标:将sqlite数据库中的值作为文本放入inputField。我希望用户能够更新该数据库的记录/值。实际上,我正在尝试制作一款类似iPhone上的note的note应用程序

我的问题:文本显示在文本和内容字段内的字段中,包括输入光标/插入符号。当用户单击文本字段时,它会将所有内容重置为空

我尝试的内容:我创建了一个脚本,将inputField中文本的值更改为从数据库中获取的值。文本将按预期更新。然后,只要我或其他用户按下inputField,值就会消失,类似于占位符的工作方式。但是,我希望该值保持不变,以便用户可以编辑它

守则:

TextMeshProUGUI contenttext =
  input1.transform.Find("Text").GetComponentInChildren<TextMeshProUGUI>();
contenttext.text = source;
TextMeshProUGUI contenttext=
input1.transform.Find(“Text”).getComponentChildren();
contenttext.text=源;

假设这将更新
文本
组件,该组件是
文本区域
的子组件,该子组件是
内容字段
的子组件。以下是检查员的照片。

您需要在
TMP\u输入字段
.text
字段中设置值,而不是
TextMeshProUGUI

input1.transform.Find("Text").GetComponentInChildren<TMP_InputField>().text = source;
input1.transform.Find(“Text”).getComponentChildren().Text=source;

您的问题是
getComponentChildren()只返回找到的该类型的第一个组件,它似乎是占位符的组件,而不是实际的文本。通常您更愿意使用
inputField.text=“…”
而不是直接“手动”浏览文本组件。您是否应该尝试
查找包含
TextMeshProUGUI
的游戏对象并调用
.GetComponent
?为什么要获取它的子组件?@derhugo它仍然提供相同的效果。@在AT3中,这是另一种方法,而不是使用find()查看每个对象。您可以查看已设置的对象的子对象。@现在我想,如果要设置InputField的文本,必须在
TMP\u InputField
组件的
text
属性中设置,而不是
TextMeshProUGUI