我有一个协程设置,可以http发布并使用用户名和密码登录,无论成功与否,返回true或false。我不确定是否应该使用这样的回调,因为在调用回调之前LoginRequest()返回false。我该怎么做呢?
布尔函数
public bool LoginRequest(string username, string password)
{
bool value = false;
StartCoroutine(WebServerCredential(true, username, password , returnValue =>
{
value = returnValue;
}));
return value;
}
协程
private IEnumerator WebServerCredential(bool login, string username, string password, System.Action<bool> success=null, string authKey=null)
{
WWWForm form = new WWWForm();
form.AddField("username", username);
form.AddField("password", password);
form.AddField("action", "login");
UnityWebRequest web = UnityWebRequest.Post(Host, form);
yield return web.SendWebRequest();
if (web.downloadHandler.text.StartsWith("TRUE"))
{
success(true);
Debug.Log("Login Successful");
}
else
{
Debug.Log("Network - Web - Login: " + web.downloadHandler.text);
success(false);
}
}