在Unity3d中使用C#時,Coroutine是一個大有用處的好東西,至於怎麼用網上多的是講,我僅在此記錄最近一次使用中的小發現。函數
由於某種需求,要在一個Coroutine實現中使用while循環,代碼大體以下:測試
1 IEnumerator func() 2 { 3 while(condition) 4 { 5 doSomething(); 6 yield return new WaitforSeconds(1f); 7 } 8 }
當condition==false時,指望結束該Coroutine的執行。幾經測試,發現 spa
1. 當condition在兩次協同執行的間歇期(1秒)內快速的由true變爲false時,該函數中的while循環不受任何影響,正常執行3d
2. StopCoroutine("func") 並不能結束該協同函數的執行code
3. StopAllCoroutine 則能夠正常的結束該協同函數的執行blog