如何获得Unity3D InputField GUI的价值

时间:2015-01-17 07:15:26

标签: c# unity3d

那么如何获取Input字段(文本框)或Unity3D

内的文本值

以下是我在c#

中尝试的内容
public void UserInput (string UserInput)
{
    UserName = UserInput;
}

public void PassInput (string PassInput)
{
    Password = PassInput;
}

在Unity中,我把它放了。 http://gyazo.com/b90e2d05b806b0fde90122e7a2302463

请帮助。谢谢!

3 个答案:

答案 0 :(得分:1)

它不起作用,因为你实际上并没有调用InputField。获得该值的正确方法是

public void UserInput(InputField userField)
{
    string username = userField.text;
}

public void PassInput (InputField passField)
{
    string password = passField.text;
}

当然这样你必须传递InputField作为参数,如果你只需要这个方法来为字符串赋值,你就可以将InputField.text作为参数传递。

要使您的设置正常工作,您必须分配" Scripts"到对象并在编辑器中拖动该对象(拖动脚本的位置)。您还需要稍微修改一下您的功能,如下所示:

using UnityEngine.UI;
[SerializeField] private InputField _userField;
[SerializeField] private InputField _passField;

// Other code.

public void UserInput()
{
    string username = _userField.text;
    // Code that uses the username variable.
}

public void PassInput ()
{
    string password = _passField.text;
    // Code that uses the password variable.
}

这样你就可以将InputFields从场景层次结构拖到" Scripts"对象直接在编辑器中。

希望这有帮助!

答案 1 :(得分:0)

更简洁地说,要访问InputText的Text子游戏对象,你必须访问InputText的文本var

示例

using UnityEngine.UI;

public InputText inputtext; 

void Start(){
   inputtext.text = "replaced";
} 

通过拖动所需输入字段的实例来分配inputtext。

答案 2 :(得分:-1)

尝试使用:inputField.text,inputField.value