【问题标题】:How do I take text info from a text field from Unity and assign it to a variable in C#?如何从 Unity 的文本字段中获取文本信息并将其分配给 C# 中的变量?
【发布时间】:2015-05-22 21:47:19
【问题描述】:

我正在尝试使用 C# 和 MySql 在 Unity 中创建一个注册/登录系统。

这行代码不起作用

username = GameObject.Find("/Canvas/TextFields/InputUsername/Text".ToString());

无论我是否添加 .ToString 都不起作用。如何从文本字段中获取文本信息?

我正在查看 Unity 信息,很多示例都说 GameObject.Find(Hand) 之类的内容。它如何找到它在说什么?

我收到错误无法隐式转换。

我也尝试了很多其他方法,但似乎都没有。

编辑:我尝试过的一件事是使用 .GetComponent 但这也不起作用。

另外,由于某种原因,我昨天无法在课堂上发布此内容,因为它说我在前 90 分钟内发布了一些内容但没有发布,有人知道如何解决这个问题吗?

【问题讨论】:

  • 您的文本字段是如何设置的?它来自附加到游戏对象的脚本吗? GameObject.find() 为您提供对场景中游戏对象的引用。你会想要类似user name = GameObject.Find("NAME").GetComponent("SCRIPTNAME").textfieldVariable;
  • @Andy 它来自场景中的 Unity 程序本身,而不是由脚本制作的。这是一张图片。 i.imgur.com/bPAWdmg.png 我会用什么来称呼它?在这种情况下,“名称”似乎不起作用。
  • @Andy 试过 username = GameObject.Find ("/Canvas/TextFields/InputUsername").GetComponent ("Input Field").Text;唯一的错误是 Text 不包含扩展方法或定义。

标签: c# user-interface variables text unity3d


【解决方案1】:

试试

username = GameObject.Find("/Canvas/TextFields/InputUsername/Text").GetComponent<Text>().text;

【讨论】:

  • 而不是使用 GetComponent().Text;使用 GetComponent().text;因为 Text 中的大写 T 是 Class 而 text 是实例字段。
  • 我收到一个错误,提示找不到类型或命名空间“文本”,它表示我可能缺少 using 指令或程序集引用。我正在使用i.imgur.com/8BmuHNy.png 我的参考文献是i.imgur.com/IQ9ncay.png 抱歉,我尝试了双倍行距和双输入,但似乎无法正确跳到下一个/格式,所以我使用了图像。
  • 尝试添加using UnityEngine.UI;
猜你喜欢
  • 2019-05-24
  • 2018-08-22
  • 2011-08-01
  • 1970-01-01
  • 2021-12-24
  • 2020-06-10
  • 1970-01-01
  • 1970-01-01
  • 2020-07-25
相关资源
最近更新 更多