【Unity】一つのコルーチンを始めたり止めたりする


f:id:nuakam:20180924115239j:plain
さして難しい話ではありません。

StartCoroutineとStopCoroutineを繰り返す小技

private IEnumerator TempCoroutine =null;

private void Hoge()
{
   if(TempCoroutine == null)
   {
      TempCoroutine = MyAction();
      StartCoroutine(TempCoroutine);
   }
}

private void Huga()
{
   if(TempCoroutine != null)
   {
      StopCoroutine(TempCoroutine);
   }
   TempCoroutine =null;
}

これでできます。

変数にコルーチン関数を入れることで初期化して0からやり直すことができます