2017-06-19 20 views
1

Webサービス(WWW)から簡単なユーザーデータ検索機能を構築しています。私はこれを解決することはできませんので、あなたたちは私を助けることができますか?StartCoroutine関数はアンドロイドでは動作しませんがUnityエディタで正常に動作します

私はStartCoroutineメソッドを使用しています。私のアンドロイドデバイス(アンドロイド6.0.1)をビルドして実行すると、ボタンをクリックしても何もしません!何もない!しかし、Unityエディタでは、完全に動作しています!

私はこの問題の詳細を検索し、誰かが「もっと効果的なコルーチン」というプラグインを勧めましたhttp://trinary.tech/category/mec/さて、あなたはおそらく、このプラグインが私に全く役に立たないという考えを得るでしょう!ここで

は(私は標準ユニティコードをコメントアウト)プラグインと私のC#のコードです:

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#は私の新しい言語です。

よろしく、 ロブ。

+0

Androidで 'OnSubmit()'が呼び出されていますか? Debug.Log( "OnSubmit clicked")を追加すると、あなたはコンソール(つまり、logcat)でそれを見ることができますか? – mayo

+0

@mayoはい、Android上で呼び出されています。 – user3292639

+1

'connectionLink'とは何ですか? '00.00.00.211'があなたのローカルマシンのアドレスであれば、アンドロイドのビルドはアンドロイドのローカルマシンに接続しようとします。あなたの携帯電話でサーバを稼働させていなければ、アプリケーションは接続を作成できません。 .. – mayo

答えて

2

@mayoの助けを借りてモバイルで動作しない理由がわかりました。

私はちょうどアドレスの開始時にhttps://を追加するのを忘れ:

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

は、他の誰かが、これは便利でしょう願っています!

+0

これは本当です.Windowsでは必要ありません。自動的に追加されますが、アンドロイドデバイスは自動的に追加されます。 – dehood

関連する問題