Unityパッケージ遅延時呼び出しタイマー


本論文の例では、Unityパッケージの遅延時間呼び出しタイマーの具体的なコードを共有します。
パッケージの遅延時間呼び出しタイマークラス

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;

public class WaitTimeManager 
{
 private static TaskBehaviour m_Task;
 static WaitTimeManager()
 {
 GameObject go = new GameObject("#WaitTimeManager#");
 GameObject.DontDestroyOnLoad(go);
 m_Task = go.AddComponent<TaskBehaviour> ();
 }

 //  
 static public Coroutine WaitTime(float time,UnityAction callback)
 {
 return m_Task.StartCoroutine(Coroutine(time,callback));
 }
 
 //    
 static public void CancelWait(ref Coroutine coroutine)
 {
 if (coroutine != null) {
 m_Task.StopCoroutine(coroutine);
 coroutine = null;
 }
 }

 static IEnumerator Coroutine(float time, UnityAction callback) {
 yield return new WaitForSeconds (time);
 if (callback != null) {
 callback();
 }
 }
 
 //   
 class TaskBehaviour : MonoBehaviour { }
}
テスト

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Script_04_15 : MonoBehaviour {

 void Start () {
 //     
 Coroutine coroutine = WaitTimeManager.WaitTime(5f, delegate {
 Debug.LogFormat("  5    ");
 });

 //        
 //WaitTimeManager.CancelWait (ref coroutine);
 }
}
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。