3秒でわかる!「カスタムコルーチン」【Unity】
カスタムコルーチンとは
自分で実装するコルーチンです!
作り方
分指定で待ってくれるコルーチンを作ります。
(1)クラスを定義
public class WaitForMinutes{ }
(2)CustomYieldInstructionを継承
using UnityEngine; public class WaitForMinutes : CustomYieldInstruction { }
(3)keepWaitingをオーバーライド
抽象メソッドを実装しよう。
public class WaitForMinutes : CustomYieldInstruction { public override bool keepWaiting { get { return true; } } }
(4)機能を作る
コンストラクタを定義しよう。
using UnityEngine; public class WaitForMinutes : CustomYieldInstruction { private float waitTime; //実際の待ち時間 public WaitForMinutes (float time) { waitTime = Time.realtimeSinceStartup + time * 60; } public override bool keepWaiting { get { return (Time.realtimeSinceStartup < waitTime); } } }
(5)あとは使うだけ!
using System.Collections; using UnityEngine; public class Test : MonoBehaviour { private void Start () { StartCoroutine(TestCorountine()); } private IEnumerator TestCorountine () { yield return new WaitForMinutes(5); Debug.Log("Waited 5 minutes."); } }