Unidad: debe devolver el valor solo después de que termine la rutina
Estoy trabajando en un juego en la unidad y encontré un problema que no puedo resolver. Me estoy conectando a un servidor web a través de un objeto WWW estándar y estoy usando una rutina para ejecutar una solicitud POST.
El código en sí mismo funciona, pero necesito actualizar un valor de variable y devolver esa variable una vez que finaliza la rutina, lo que no puedo hacer.
public int POST(string username, string passw)
{
WWWForm form = new WWWForm();
form.AddField("usr", username);
form.AddField("pass", passw);
WWW www = new WWW(url, form);
StartCoroutine(WaitForRequest(www));
//problem is here !
return success_fail;
}
private IEnumerator WaitForRequest(WWW www)
{
yield return www;
if (www.error == null)
{
if(www.text.Contains("user exists"))
{
success_fail = 2;
}
else
{
success_fail=1;
}
} else {
success_fail=0;
}
}
La rutina actualiza el valor de 'success_fail' con el valor relevante. Pero el 'return success_fail;' La línea del método POST se ejecuta antes de que finalice la rutina, lo que hace que devuelva un valor falso.
Intenté usar una rutina adicional, pero sin éxito, supongamos que también tuve un error allí. ¿Cómo puedo devolver el valor 'success_fail' solo después de que termine la rutina?
Gracias.