Jump to content
Unity Insider Forum

Coroutine Callback


Kojote
 Share

Recommended Posts

Hi!

Ich brauche mal Hilfe bei einer Methode. Diese hat einen Rückgabewert vom Typ float. Alternativ muss ich eine Coroutine starten die mir diesen Rückgabewert liefert.

Das ganze schaut so aus:

	public float GetTime() {
            if(currentTime != EnviroSkyMgr.instance.GetTimeOfDay()) {
                return EnviroSkyMgr.instance.GetTimeOfDay();
            } else {
                StartCoroutine(GetTimeCoroutine((callback) =>
                {
                    return callback;
                }));
            }
        }

        private IEnumerator GetTimeCoroutine(System.Action<float> callBack) {
            while(currentTime == EnviroSkyMgr.instance.GetTimeOfDay()) {
                yield return new WaitForSeconds(0.25f);
            }
            callBack(EnviroSkyMgr.instance.GetTimeOfDay());
        }

bekomme aber bei 'return callback;' eine Fehlermeldung. Hat jemand eine Idee wa sich da falsch geschrieben habe?

Dank!

Link to comment
Share on other sites

Statt "eine Fehlermeldung" könntest du die besagte Fehlermeldung ja mal posten, dann muss man nicht raten ;)

Also... GetTimeCoroutine will eine Action<float> als Parameter kriegen. Was du reingibst ist:

callback => return callback;

Es handelt sich hier also nicht um eine Action, sondern eine Func, also eine Funktion, denn es wird etwas zurückgegeben.

Du übergibst also etwas, das nicht zum Parametertyp passt.

  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...

Das was du machst wird nicht funktionieren, da Coroutine Programablauf nicht blocken. GetTime() kann also nicht zurück geben. Musst das anders planen.

Alternativ kannst du await, async und task verwenden. Musst nur etwas aufpassen

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...