Unity Coroutine Yields, но также продолжает обновлять переменные
Я ищу эту сопрограмму для обновления переменной каждую секунду:
int i = 0;
void Start()
{
StartCoroutine ("MyCoRoutine");
}
IEnumerator MyCoRoutine()
{
while ( true )
{
print ("Counter Value: " + i++);
yield return new WaitForSeconds(1f);
}
}
Я ожидал бы, что отладка консоли будет показывать увеличивающееся значение каждую секунду, вместо этого она обновляется каждую секунду, но с непоследовательными значениями:
Значение счетчика: 0 UnityEngine.MonoBehaviour:print(Object) c__Iterator0:MoveNext() (в Assets/building.cs:81)
Значение счетчика: 51 UnityEngine.MonoBehaviour:print(Object) c__Iterator0:MoveNext() (в Assets/building.cs:81)
Значение счетчика: 119 UnityEngine.MonoBehaviour:print(Object) c__Iterator0:MoveNext() (в Assets/building.cs:81)
так далее..
Что я не понимаю о сопрограммах / урожайности, которые могут вызвать такие странные явления?