Trong Unity, chúng tôi có một số điều đặc biệt cho các coroutine bổ sung cho C # bình thường.
ví dụ: chúng ta có thể sử dụng
yield return WaitForSeconds(5.f);
để có một coroutine chờ 5 giây trước khi tiếp tục.
Làm gì yield return false;và yield return true;làm gì?
if (0)hoặc if (null), không giống như trong C và C ++.
yield return 0hoạt động; rõ ràng là vì lý do MLM giải thích
yieldtừ khóa đã được khoảng từ ít nhất là C # 2.0. Tất cả Unity làm là gọi nó là coroutine và xử lý trình lặp được tạo và các giá trị được trả về từ đó theo cách mà bạn có thể gây ra sự chậm trễ không chặn trong quá trình thực thi mã của mình.
WaitForSecondskhông được khai báo. Ngay khi bạn khai báo một phương thức được gọi là WaitForSecondsđối số float và trả về kiểu phần tử của phép liệt kê mà bạn đang thực hiện, nó sẽ biên dịch lại. Do đó, yieldkhông đặc biệt đối với Unity. Nếu bất cứ điều gì, WaitForSecondsphương thức này đặc biệt đối với Unity, nhưng ngay cả khi đó, nó không mở rộng ngôn ngữ C #, mà chỉ đơn giản là một phương thức bổ sung được viết bằng C # tiêu chuẩn.
yield return truelàm gì đặc biệt không Nhưngyield return nullchỉ đơn giản là tạm dừng cho một khung hình, vì vậy tôi nghi ngờ rằng nóyield return falsecó hiệu ứng chính xác tương tự (cũngyield return 0vì 0 sai null đều giống nhau dưới mui xe)