Hi to everyone,
I have a simple code that creates a new account on a database. The problem is that yield doesn’t work and I really can’t understand why.
I attach my code below:
/// <summary>
/// This method prepares the informations to create a new account on database and starts a coroutine that adds the new account
/// </summary>
/// <returns></returns>
public void CreateNewAccountOnDatabase()
{
....
StartCoroutine(DBManager.Istance.CreateNewAccountOnDatabase(name, surname, identification, email, password));
} // End CreateNewAccountOnDatabase
/// <summary>
/// This method creates a new account on database
/// </summary>
/// <returns></returns>
public IEnumerator CreateNewAccountOnDatabase(string name, string surname, string identification, string email, string password)
{
WWWForm form = new WWWForm();
form.AddField("Name", name);
form.AddField("Surname", surname);
form.AddField("Identification", identification);
form.AddField("Email", email);
form.AddField("Password", password);
WWW createAccountWWW = new WWW(this.url, form);
// Waiting for php to send something back to Unity
yield return createAccountWWW;
if (createAccountWWW.error != null)
{
Debug.Log("Cannot Connect to Account Creation: " + createAccountWWW.error); // TODO
}
else
{
string createAccountReturn = createAccountWWW.text;
if (string.Compare(createAccountReturn, "Success") == 0)
{
Debug.Log("Success: Account Created"); // TODO
}
}
} // End CreateNewAccountOnDatabase
Everything works fine…but the only problem is that after
yield return createAccountWWW;
the program skips all remaining code and ends the method;
Thanks for all your help!!!