En Unity, tenemos algunas cosas especiales para las rutinas que son adicionales al C # normal.
por ejemplo, podemos usar
yield return WaitForSeconds(5.f);
para tener una rutina espere 5 segundos antes de continuar.
¿Qué hacer yield return false;y yield return true;hacer?
if (0)o if (null), a diferencia de C y C ++.
yield return 0funciona; aparentemente por la razón que MLM explicó
yieldpalabra clave ha existido desde al menos C # 2.0. Todo lo que Unity hace es llamarlo de rutina y manejar el iterador generado y los valores devueltos por él de manera que pueda causar retrasos sin bloqueo en la ejecución de su código.
WaitForSecondsno se declara. Tan pronto como declare un método llamado WaitForSecondsque tome un argumento flotante y que devuelva el tipo de elemento de la enumeración que está implementando, se volvería a compilar. Por lo tanto, yieldno es especial para la Unidad. En todo caso, el WaitForSecondsmétodo es especial para Unity, pero aun así, no extiende el lenguaje C #, sino que es simplemente un método adicional que se escribió utilizando C # estándar.
yield return truehace algo especial. Peroyield return nullsimplemente hace una pausa para un cuadro, por lo que sospecho queyield return falsetiene exactamente el mismo efecto (tambiényield return 0dado que 0 falsos nulos son todos iguales bajo el capó)