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 0
hoạt động; rõ ràng là vì lý do MLM giải thích
yield
từ 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.
WaitForSeconds
khô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 đó, yield
không đặc biệt đối với Unity. Nếu bất cứ điều gì, WaitForSeconds
phươ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 true
làm gì đặc biệt không Nhưngyield return null
chỉ đơ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 false
có hiệu ứng chính xác tương tự (cũngyield return 0
vì 0 sai null đều giống nhau dưới mui xe)