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 0
funciona; aparentemente por la razón que MLM explicó
yield
palabra 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.
WaitForSeconds
no se declara. Tan pronto como declare un método llamado WaitForSeconds
que 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, yield
no es especial para la Unidad. En todo caso, el WaitForSeconds
mé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 true
hace algo especial. Peroyield return null
simplemente hace una pausa para un cuadro, por lo que sospecho queyield return false
tiene exactamente el mismo efecto (tambiényield return 0
dado que 0 falsos nulos son todos iguales bajo el capó)