【问题标题】:Unity stop and start coroutinesunity 停止和启动协程
【发布时间】:2016-06-14 14:28:55
【问题描述】:

我怎样才能拥有一个播放协程的函数,但首先检查它是否已经在运行以停止它?

编辑:对不起,我没有看到有人已经问过/回答了这个问题,这是我坚持了一段时间的事情

【问题讨论】:

  • How to stop co-routine?的可能重复
  • 这是一个很棒的提示,贾斯汀,但网站上已经有特色。确实很遗憾有几十个重复项(人们应该一路将它们标记为“重复项”)
  • 嗨@MickyD 谢谢我没有意识到我不能只发布代码片段。将保留下一次的问答 SO 主题 - 现在已修改此问题
  • @JustinHirsch 没问题贾斯汀。我只是剪掉了你的“问题”来读起来更像一个问题,随意充实它:)

标签: unity3d coroutine


【解决方案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?

【讨论】:

    猜你喜欢
    • 2018-04-18
    • 2014-02-12
    • 2021-10-24
    • 1970-01-01
    • 1970-01-01
    • 2020-07-15
    • 1970-01-01
    • 1970-01-01
    • 2016-06-15
    相关资源
    最近更新 更多