using System; using System.Collections; using UnityEngine; using UnityEngine.Internal; namespace TEngine { public interface IUpdateDriver { #region 控制协程Coroutine public Coroutine StartCoroutine(string methodName); public Coroutine StartCoroutine(IEnumerator routine); public Coroutine StartCoroutine(string methodName, [DefaultValue("null")] object value); public void StopCoroutine(string methodName); public void StopCoroutine(IEnumerator routine); public void StopCoroutine(Coroutine routine); public void StopAllCoroutines(); #endregion #region 注入UnityUpdate/FixedUpdate/LateUpdate /// /// 为给外部提供的 添加帧更新事件。 /// /// public void AddUpdateListener(Action action); /// /// 为给外部提供的 添加物理帧更新事件。 /// /// public void AddFixedUpdateListener(Action action); /// /// 为给外部提供的 添加Late帧更新事件。 /// /// public void AddLateUpdateListener(Action action); /// /// 移除帧更新事件。 /// /// public void RemoveUpdateListener(Action action); /// /// 移除物理帧更新事件。 /// /// public void RemoveFixedUpdateListener(Action action); /// /// 移除Late帧更新事件。 /// /// public void RemoveLateUpdateListener(Action action); #endregion #region Unity Events 注入 /// /// 为给外部提供的Destroy注册事件。 /// /// public void AddDestroyListener(Action action); /// /// 为给外部提供的Destroy反注册事件。 /// /// public void RemoveDestroyListener(Action action); /// /// 为给外部提供的OnDrawGizmos注册事件。 /// /// public void AddOnDrawGizmosListener(Action action); /// /// 为给外部提供的OnDrawGizmos反注册事件。 /// /// public void RemoveOnDrawGizmosListener(Action action); /// /// 为给外部提供的OnDrawGizmosSelected注册事件。 /// /// public void AddOnDrawGizmosSelectedListener(Action action); /// /// 为给外部提供的OnDrawGizmosSelected反注册事件。 /// /// public void RemoveOnDrawGizmosSelectedListener(Action action); /// /// 为给外部提供的OnApplicationPause注册事件。 /// /// public void AddOnApplicationPauseListener(Action action); /// /// 为给外部提供的OnApplicationPause反注册事件。 /// /// public void RemoveOnApplicationPauseListener(Action action); #endregion } }