Это не работает, потому что вы на самом деле не вызывая InputField. Правильный способ получить это значение будет
public void UserInput(InputField userField)
{
string username = userField.text;
}
public void PassInput (InputField passField)
{
string password = passField.text;
}
Конечно, как это вы должны пройти InputField в качестве параметра, если вам нужен только этот метод, чтобы присвоить значение в строку, которую вы могли бы просто пройти InputField. текст как параметр.
Чтобы сделать работу с настройками, вы должны назначить «скрипты» объекту и перетащить этот объект в редакторе (там, где вы перетаскивали скрипты). Вы также должны немного изменить свои функции, например:
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» объект непосредственно в редакторе.
Надеюсь, это поможет!
Nope не сработал ... – Coderz
yep, verified - .text не поддерживает назначение для ввода поля – ina