W Unity mamy specjalne rzeczy dla coroutines, które są dodatkowe w stosunku do normalnego C #.
na przykład możemy użyć
yield return WaitForSeconds(5.f);
aby coroutine odczekał 5 sekund przed kontynuowaniem.
Co robisz yield return false;i co yield return true;robisz?
if (0)lub if (null), inaczej niż w C i C ++.
yield return 0działa; najwyraźniej z powodu wyjaśnienia MLM
yieldkluczowe istnieje od co najmniej C # 2.0. Wszystko, co robi, to nazywa to coroutine i obsługuje wygenerowany iterator oraz wartości zwrócone z niego w sposób, który może powodować nieblokujące opóźnienia w wykonywaniu kodu.
WaitForSecondsnie zostało zadeklarowane. Gdy tylko zadeklarujesz metodę o nazwie, WaitForSecondsktóra pobiera argument zmiennoprzecinkowy i zwraca typ elementu wyliczanego elementu, kompiluje się ponownie. Dlatego yieldnie jest wyjątkowy dla Jedności. Jeśli już, WaitForSecondsmetoda ta jest wyjątkowa dla Unity, ale nawet wtedy nie rozszerza języka C #, ale jest po prostu dodatkową metodą napisaną przy użyciu standardowego C #.
yield return truerobi coś specjalnego. Aleyield return nullpo prostu zatrzymuje się na klatkę, więc podejrzewam, żeyield return falsema dokładnie taki sam efekt (równieżyield return 0ponieważ 0 false null są takie same pod maską)