Heim > Backend-Entwicklung > C++ > Wie kann ich Werte von Unity-Coroutinen zurückgeben, nachdem sie abgeschlossen sind?

Wie kann ich Werte von Unity-Coroutinen zurückgeben, nachdem sie abgeschlossen sind?

Patricia Arquette
Freigeben: 2025-01-03 14:09:43
Original
823 Leute haben es durchsucht

How Can I Return Values from Unity Coroutines After They Complete?

Unity-Coroutinen: Werte nach Abschluss zurückgeben

In Unity werden Coroutinen häufig für asynchrone Aufgaben verwendet. Sie stellen jedoch eine Herausforderung dar, wenn versucht wird, nach Abschluss Werte zurückzugeben. Stellen Sie sich das folgende Szenario vor:

Problem: Ein Skript initiiert eine POST-Anfrage mithilfe einer Coroutine, erfordert jedoch die Rückgabe eines Werts, wenn die Anfrage abgeschlossen ist. Allerdings wird die „return“-Anweisung ausgeführt, bevor die Coroutine beendet ist, was zu falschen Werten führt.

Lösung: Rückruf über Action Delegate

1. Erstellen Sie einen Aktionsdelegierten:

public delegate void RequestStatusCallback(int status);
Nach dem Login kopieren

2. Initiieren Sie die Anfrage mit einem Rückruf:

Initiieren Sie in der Start()- oder Update()-Methode des Skripts die Coroutine und stellen Sie den Rückruf bereit:

WWW www = new WWW("http://google.com");

StartCoroutine(WaitForRequest(www, (status) => {
    print(status.ToString());
}));
Nach dem Login kopieren

3. Implementieren Sie die WaitForSeconds-Coroutine:

private IEnumerator WaitForRequest(WWW www, RequestStatusCallback callback) {
    int tempInt = 0;
    yield return www;
    if (string.IsNullOrEmpty(www.error)) {
        if(!string.IsNullOrEmpty(www.text)) {
            tempInt = 3;
        }
        else {
            tempInt=2;
        }
    } else {
        print(www.error);
        tempInt=1;
    }
    callback(tempInt);
}
Nach dem Login kopieren

4. Verwenden Sie den Rückruf, um Werte zu aktualisieren:

Der Rückruf bietet Zugriff auf den Statuswert, sodass Sie Variablen aktualisieren oder andere nachfolgende Aktionen basierend auf dem Ergebnis der Anfrage ausführen können.

Das obige ist der detaillierte Inhalt vonWie kann ich Werte von Unity-Coroutinen zurückgeben, nachdem sie abgeschlossen sind?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage