Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Mendapatkan Nilai Selepas Coroutine Perpaduan Selesai?

Bagaimana untuk Mendapatkan Nilai Selepas Coroutine Perpaduan Selesai?

Patricia Arquette
Lepaskan: 2025-01-05 00:21:38
asal
263 orang telah melayarinya

How to Retrieve a Value After a Unity Coroutine Completes?

Nilai Pulangan Hanya Selepas Coroutine Selesai dalam Perpaduan

Apabila bekerja dengan coroutine dalam Unity, adalah perkara biasa untuk menghadapi keperluan untuk mengemas kini pembolehubah dan kembalikan nilainya setelah coroutine selesai. Walau bagaimanapun, fungsi tidak semestinya menunggu coroutine selesai sebelum kembali.

Untuk menyelesaikan isu ini, satu pendekatan ialah menggunakan perwakilan Tindakan. Wakil Tindakan ialah fungsi yang mengambil nilai input dan melakukan tindakan padanya. Dalam kes ini, perwakilan Tindakan boleh digunakan sebagai panggilan balik untuk menerima nilai yang dikemas kini setelah coroutine selesai.

Kod Kemas Kini:

public int POST(string username, string passw)
{
    WWWForm form = new WWWForm();
    form.AddField("usr", username);
    form.AddField("pass", passw);

    WWW www = new WWW(url, form);
    
    // Start the coroutine and pass in the callback
    StartCoroutine(WaitForRequest(www, (status) => {
        success_fail = status;
    }));

    // Function does not wait for coroutine to finish, so return a placeholder value
    return -1;
}

private IEnumerator WaitForRequest(WWW www, Action<int> callback)
{
    yield return www;
    if (www.error == null)
    {
        if(www.text.Contains("user exists"))
        {
            callback(2);
        }
        else
        {
            callback(1);
        }
    } else {
        callback(0);
    }    
}
Salin selepas log masuk

Dalam Kaedah POST, bukannya mengembalikan nilai secara langsung, kami memulakan coroutine dan menghantar perwakilan Tindakan sebagai panggilan balik. Panggilan balik akan dilaksanakan sebaik coroutine selesai dan ia akan menetapkan pembolehubah success_fail dengan nilai yang sesuai.

Walaupun penyelesaian ini mengelakkan isu mengembalikan nilai palsu, adalah penting untuk ambil perhatian bahawa kaedah POST masih kembali nilai pemegang tempat (-1) untuk mengelak daripada menyekat pelaksanaan fungsi. Terpulang kepada pelanggan kaedah POST untuk menyemak nilai pemegang tempat ini dan mengendalikannya dengan sewajarnya.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Nilai Selepas Coroutine Perpaduan Selesai?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan