0

マルチプレイヤー ゲームに Appwarp API を使用しています。を呼び出しているときにエラーが発生しますInvoke("recoverConnection", 5)

public void onConnectDone(ConnectEvent eventObj)  
{  
    Log ("onConnectDone : " + eventObj.getResult ());  

    if (eventObj.getResult () == 0)   
    {
        recoveryErrorCode = 0;  
        WarpClient.GetInstance ().JoinRoomInRange (0, 5, true);  
    }   
    else if (eventObj.getResult () == 9)  
    {  
        this.Invoke("recoverConnection", 5);  
    }  
    else if (eventObj.getResult () == 8)   
    {  
        // reconnected  
    }  
}  

void recoverConnection()
{
    WarpClient.GetInstance ().RecoverConnection ();
}

エラーは次のとおりです。

Invoke は、メイン スレッドからのみ呼び出すことができます。

コンストラクターとフィールド初期化子は、シーンのロード時にロード スレッドから実行されます。

4

1 に答える 1

1

コールバック onConnectDone は別のスレッドで呼び出されるため、UI 関連の変更や Invoke 機能はメイン スレッドで呼び出す必要があります。任意のセカンダリ スレッドからメイン スレッド上の任意のメソッドを呼び出すのに役立つ任意のプラグインを使用できます。このリンクをご覧ください。これにより、メイン スレッドから Invoke メソッドを呼び出すことができます。

これがお役に立てば幸いです。

于 2016-10-18T05:41:06.967 に答える