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
}
}