我试图将逻辑从UnityUIElement中分离出来。
public class UILogin: MonoBehaviour
{
public TMP_InputField UsernameInputField;
public TMP_InputField PasswordInputField;
public Button ButtonLogin;
public TMP_Text LoginResult;
/// <summary>
/// Parameter: Username, password
/// </summary>
public UnityEvent<string, string> LoginButtonClicked;
void Awake() {
ButtonLogin.onClick.AddListener(() =>
LoginButtonClicked.Invoke(UsernameInputField.text, PasswordInputField.text));
/// How to setup a method callback and make the following line happen without setting it somewhere else outside of this class?
LoginResult.text=?
}
}
1条答案
按热度按时间5t7ly7z51#
我不确定我是否完全理解您的问题,但是提供一个其他类可以订阅的事件是否可行?
那么您的订阅者可能是
但是既然你说你不想从其他地方设置文本,另一种方法是用UILogin注册/注销一堆字符串。因为你需要将注册对象Map到它想要添加的字符串,你需要像
Dictionary
这样的代码,但是默认情况下这些代码不会出现在编辑器中,所以你需要在代码中完成所有的处理。比如:第一次