AlicizaX/Client/Packages/com.alicizax.unity.timer/Runtime/Timer/ITimerManager.cs

77 lines
2.4 KiB
C#
Raw Normal View History

2025-01-23 19:06:48 +08:00
using System;
using System.Collections.Generic;
using AlicizaX.Runtime;
namespace AlicizaX.Timer.Runtime
{
2025-01-24 16:21:00 +08:00
public delegate void TimerHandler(object[] args);
2025-01-23 19:06:48 +08:00
/// <summary>
/// 定时器接口
/// </summary>
[UnityEngine.Scripting.Preserve]
public interface ITimerManager : IModule, IModuleUpdate
{
2025-01-24 16:21:00 +08:00
/// <summary>
/// 添加计时器。
/// </summary>
/// <param name="callback">计时器回调。</param>
/// <param name="time">计时器间隔。</param>
/// <param name="isLoop">是否循环。</param>
/// <param name="isUnscaled">是否不收时间缩放影响。</param>
/// <param name="args">传参。(避免闭包)</param>
/// <returns>计时器Id。</returns>
public int AddTimer(TimerHandler callback, float time, bool isLoop = false, bool isUnscaled = false, params object[] args);
/// <summary>
/// 暂停计时器。
/// </summary>
/// <param name="timerId">计时器Id。</param>
public void Stop(int timerId);
/// <summary>
/// 恢复计时器。
/// </summary>
/// <param name="timerId">计时器Id。</param>
public void Resume(int timerId);
/// <summary>
/// 计时器是否在运行中。
/// </summary>
/// <param name="timerId">计时器Id。</param>
/// <returns>否在运行中。</returns>
public bool IsRunning(int timerId);
2025-01-23 19:06:48 +08:00
/// <summary>
2025-01-24 16:21:00 +08:00
/// 获得计时器剩余时间。
2025-01-23 19:06:48 +08:00
/// </summary>
2025-01-24 16:21:00 +08:00
public float GetLeftTime(int timerId);
2025-01-23 19:06:48 +08:00
/// <summary>
2025-01-24 16:21:00 +08:00
/// 重置计时器,恢复到开始状态。
2025-01-23 19:06:48 +08:00
/// </summary>
2025-01-24 16:21:00 +08:00
public void Restart(int timerId);
2025-01-23 19:06:48 +08:00
/// <summary>
2025-01-24 16:21:00 +08:00
/// 重置计时器。
2025-01-23 19:06:48 +08:00
/// </summary>
2025-01-24 16:21:00 +08:00
public void Reset(int timerId, TimerHandler callback, float time, bool isLoop = false, bool isUnscaled = false);
2025-01-23 19:06:48 +08:00
/// <summary>
2025-01-24 16:21:00 +08:00
/// 重置计时器。
2025-01-23 19:06:48 +08:00
/// </summary>
2025-01-24 16:21:00 +08:00
public void Reset(int timerId, float time, bool isLoop, bool isUnscaled);
2025-01-23 19:06:48 +08:00
/// <summary>
2025-01-24 16:21:00 +08:00
/// 移除计时器。
2025-01-23 19:06:48 +08:00
/// </summary>
2025-01-24 16:21:00 +08:00
/// <param name="timerId">计时器Id。</param>
public void RemoveTimer(int timerId);
2025-01-23 19:06:48 +08:00
/// <summary>
2025-01-24 16:21:00 +08:00
/// 移除所有计时器。
2025-01-23 19:06:48 +08:00
/// </summary>
2025-01-24 16:21:00 +08:00
public void RemoveAllTimer();
2025-01-23 19:06:48 +08:00
}
2025-01-24 16:21:00 +08:00
}