StartCoroutine函数不能在android上运行,但在Unity编辑器

时间:2017-06-19 22:51:39

标签: c# android unity5 coroutine ienumerator

我正在从Web服务(WWW)构建简单的用户数据检索功能。我无法解决这个问题,所以也许你们可以帮助我?

我正在使用StartCoroutine方法。当我在我的Android设备(Android 6.0.1)上构建和运行时,我点击按钮,它什么也没做!绝对没有!但是,在Unity编辑器中,它的工作非常完美!

我搜索了有关此问题的更多信息,有人向我推荐了一个名为"更有效的协同程序" 的插件。 http://trinary.tech/category/mec/现在你可能已经明白这个插件对我没有帮助了!

这是带插件的C#代码(我注释掉了标准的Unity代码):

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
//using "More Effective Coroutines" plugin:
using MovementEffects;
public class Login : MonoBehaviour {

    public InputField LoginUsername;
    private string usernameInput;

    public InputField LoginPassword;
    private string passwordInput;

    string connectionLink = "00.00.00.211/app/login.php";

    public Text conResponse;

    public void OnSubmit(){

        usernameInput = LoginUsername.text;
        passwordInput = LoginPassword.text;

        //DEFAULT: StartCoroutine (Login(usernameInput, passwordInput));
        Timing.RunCoroutine(_login(usernameInput, passwordInput));
    }

    //DEFAULT: IEnumerator login(string username, string password){
    IEnumerator<float> _login(string username, string password){

        WWWForm form = new WWWForm ();

        form.AddField("usernamePost", username);
        form.AddField("passwordPost", password);

        WWW www = new WWW(connectionLink, form);

        //DEFAULT: yield return www;
        yield return Timing.WaitForSeconds(1f);

        if (www.text == "ok") {

            SceneManager.LoadScene ("inGame", LoadSceneMode.Single);

        } else {

            conResponse.text = www.text;

            switch (www.text) {
                case"noUser":
                    conResponse.text = "User "+username+" not found in database!";
                    break;

                case"loginFailed":
                    conResponse.text = "Check your password and try again!";
                    break;
            }

            Debug.LogWarning(www.text);

        }
    }
}

请看看并反馈我做错了什么? C#是我的新语言。

此致 罗布。

1 个答案:

答案 0 :(得分:2)

我发现为什么在@mayo的帮助下它无法在移动设备上运行!

我忘了在地址开头添加https://

string connectionLink = "https://00.00.00.211/app/login.php";

希望别人能帮到你!