2016-03-01 62 views
0

如何獲取將啓動協程的函數,但首先檢查它是否已在運行,如果它已停止運行?統一停止並啓動協程

編輯:對不起,我沒有看到,有人已經問/回答了這一點,這是我被困在了一點

+1

可能的複製[如何停止協同例程?](http://stackoverflow.com/questions/25204035/how-to-stop-co-routine) – Fattie

+0

這是一個偉大的提示,賈斯汀,但已經在網站上的功能。的確,這是一個遺憾,有幾十個重複項目(人們應該將它們標記爲「重複項目」) – Fattie

+0

嗨@MickyD謝謝我沒有意識到我無法發佈代碼snippits。將保持下一次的問題和答案SO主題 - 現在已經修改此問題 –

回答

1
public class Example : MonoBehaviour 
{ 
    [SerializeField] // Allow the variable to be edited in editor 
    private float parameterValue; 
    private IEnumerator coroutine; 

    private IEnumerator CoroutineA(float _parameter) 
    { // do something, usually for _parameter time } 

    private void StartDoSomething() 
    { 
    if (coroutine != null) 
     StopCoroutine(coroutine); // no overlaps on timers etc 

    coroutine = CoroutineA(parameterValue); 
    StartCoroutine(coroutine); 
    } 
} 

或參閱鏈接的答案: How to stop co-routine?