Ich benutze Appwarp API für ein Multiplayer-Spiel. Ich erhalte einen Fehler, wenn ich Invoke("recoverConnection", 5)
anrufe.So lösen Sie den Einheitsfehler "Invoke kann nur vom Hauptthread aufgerufen werden"?
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();
}
Der Fehler ist:
Invoke kann nur aus dem Haupt-Thread aufgerufen werden.
Konstruktoren und Feldinitialisierer werden beim Laden einer Szene vom Lade-Thread ausgeführt.
Jut tun dies: http://blog.kibotu.net/unity-2/unity-start-corutines-main-thread-anything-else-matter – turnipinrut