转换。发现不工作了吗?统一C#

转换。发现不工作了吗?统一C#,c#,unity3d,C#,Unity3d,hirearchy的截图和完整代码 调用函数时,我试图重置输入字段的文本。我已经做了一些调试,现在知道这一行是问题的根源: Input.transform.Find("Text").GetComponent<Text>().text = ""; Input.transform.Find(“Text”).GetComponent().Text=”“; 在这里,您可能要做的是 用于获取文本的组成部分 例如,您将此代码脚本置于输入继承权中 GameObject text = null;

hirearchy的截图和完整代码

调用函数时,我试图重置输入字段的文本。我已经做了一些调试,现在知道这一行是问题的根源:

Input.transform.Find("Text").GetComponent<Text>().text = "";
Input.transform.Find(“Text”).GetComponent().Text=”“;

在这里,您可能要做的是

用于获取文本的组成部分

例如,您将此代码脚本置于输入继承权中

GameObject text = null;
text = Transform.getchild(1).gameObject;
text.GetComponent<Text>();
gameobjecttext=null;
text=Transform.getchild(1.gameObject);
GetComponent();

对不起,我正在打电话,所以属于InputField组件的文本对象有点凌乱,不应直接更改。请始终使用InputField.text,否则您的InputField将覆盖文本

另外,请将您的代码作为代码发布,以便我们可以修改它(或者只检查它的功能而不重新键入),我至少可以看到一些可以改进的地方。如果已经为对象指定了公共字段,为什么不呢

public InputField inputField;
而不是

public GameObject Input;
如果你已经有了推荐人,为什么还要找呢?(不得不使用Find已经是一个非常糟糕的迹象)。如果你改变了我建议你可以改变

Input.transform.Find("Text").GetComponent<Text>().text="";
这就是我相信你在这里要做的。另一方面,虽然不是强制性的,但它是一个很好的习惯,用大写的类名Input来编写成员字段。考虑到它是您案例中的一个成员,有些东西看起来像是对输入类的静态调用,这让人有些困惑


AdjustObiInput已经是一个游戏对象,因此您不需要在它后面放置“.gameobject”-它什么也不做,gameobject.gameobject.gameobject它只是以更长、稍慢的形式引用同一个东西

什么不起作用?输入的文本不受影响。文本的层次结构和检查器选项卡的屏幕截图会很有帮助。此外,显示输入的声明位置以及调用代码的函数。截图后如何发布截图?将截图粘贴到任何图像编辑器(例如,画师)中,保存图像,使用stackoverflow编辑器中的“添加图像”按钮上载图像。顺便说一句,如果可能的话,最好在设计时直接引用游戏对象,而不是在运行时找到它。
inputField.text="";