Di Unity, kami memiliki beberapa hal khusus untuk coroutine yang ditambahkan ke C # yang normal.
misalnya, bisa kita gunakan
yield return WaitForSeconds(5.f);
untuk memiliki coroutine, tunggu 5 detik sebelum melanjutkan.
Apa yang harus yield return false;
dan yield return true;
lakukan?
if (0)
atau if (null)
, tidak seperti di C dan C ++.
yield return 0
berhasil; rupanya karena alasan MLM menjelaskan
yield
kunci telah ada sejak setidaknya C # 2.0. Yang dilakukan Unity hanyalah menyebutnya coroutine dan menangani iterator yang dihasilkan dan nilai yang dikembalikan darinya dengan cara yang dapat menyebabkan keterlambatan non-pemblokiran dalam pelaksanaan kode Anda.
WaitForSeconds
tidak dinyatakan. Segera setelah Anda mendeklarasikan metode yang dipanggil WaitForSeconds
yang mengambil argumen float dan yang mengembalikan tipe elemen dari enumerasi yang Anda implementasikan, itu akan dikompilasi lagi. Karena itu, yield
tidak khusus untuk Persatuan. Jika ada, WaitForSeconds
metode ini khusus untuk Unity, tetapi meskipun demikian, metode ini tidak memperluas bahasa C #, tetapi merupakan metode tambahan yang ditulis menggunakan standar C #.
yield return true
melakukan sesuatu yang istimewa. Tapiyield return null
cukup jeda untuk sebuah frame, jadi saya menduga ituyield return false
memiliki efek yang sama persis (jugayield return 0
karena 0 false null semuanya sama di bawah tenda)