using UnityEngine; using System.Collections; using System; using System.Threading; namespace ThinkingSDK.PC.Time { public class TDTimeout : MonoBehaviour { // Use this for initialization void Start() { } // Update is called once per frame void Update() { } public static void SetTimeout(int timeout, Action action, object obj) { GameObject gameObject = new GameObject("TDTimeout"); var tdTimeout = gameObject.AddComponent(); tdTimeout._setTimeout(timeout, action, obj); } private void _setTimeout(int timeout, Action action, object obj) { StartCoroutine(_wait(timeout, action, obj)); } private IEnumerator _wait(int timeout, Action action, object obj) { yield return new WaitForSeconds(timeout); if (action != null) { action(obj); } Destroy(gameObject); } } }