2016-03-01 64 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?