PETimer PETimer開源項目GitHub地址: "點擊跳轉" PETimer 1.雙端通用:基於C 語言實現的高效便捷計時器,可運行在伺服器(.net core/.net framework)以及Unity客戶端環境中。 2.功能豐富:PETimer支持幀數定時以及時間定時。定時任務可迴圈 ...
PETimer
PETimer開源項目GitHub地址:點擊跳轉
PETimer
1.雙端通用:基於C#語言實現的高效便捷計時器,可運行在伺服器(.net core/.net framework)以及Unity客戶端環境中。
2.功能豐富:PETimer支持幀數定時以及時間定時。定時任務可迴圈、可替換、可取消。可使用獨立線程計時(自行設定檢測間隔),也可以使用外部驅動計時,比如使用MonoBehaviour中的Update()函數來驅動。
3.集成簡單:只有一個PETimer.cs文件,只需實例化一個PETimer類,對接相應的API,便能整合進自己的游戲框架,實現便捷高效的定時回調服務。
技術支持QQ:1785275942
使用示意:
1.Unity當中使用
//實例化計時類
PETimer pt = new PETimer();
//時間定時任務
pt.AddTimeTask(TimerTask, 500, PETimeUnit.Millisecond, 3);
//幀數定時任務
pt.AddFrameTask(FrameTask, 100, 3);
int tempID = pt.AddTimeTask((int tid) => {
Debug.Log("定時等待替換......");
}, 1, PETimeUnit.Second, 0);
//定時任務替換
pt.ReplaceTimeTask(tempID, (int tid) => {
Debug.Log("定時任務替換完成......");
}, 2, PETimeUnit.Second, 0);
//定時任務刪除
pt.DeleteTimeTask(tempID);
//定時檢測與處理由MonoBehaviour中的Update()函數來驅動
void Update() {
pt.Update();
}
2.伺服器中使用
第一種用法:運行線程檢測並處理任務(類似於在Unity中使用)
PETimer pt = new PETimer();
//必須在While迴圈中調用pt.Update()來驅動計時
while (true) {
pt.Update();
}
第二種用法:獨立線程檢測並處理任務
//在PETimer實例化時,傳入檢測間隔參數(單位毫秒)
PETimer pt = new PETimer(100);
關於定時任務的添加、替換、刪除與Unity當中使用方法一致
3.可設置定時回調處理器
當定時任務的回調處理可通過設置處理Handle來覆蓋預設的執行處理(一般用於獨立線程計時)
pt.SetHandle((Action<int> cb, int tid) => {
//覆蓋預設的回調處理
//TODO
});
4.日誌工具介面
通過SetLog(Action
pt.SetLog((string info) => {
Debug.Log("LogInfo:" + info);
});
5.其它常用API
//獲取本地DateTime
public DateTime GetLocalDate();
//獲取年份
public int GetYear();
//獲取月份
public int GetMonth();
//獲取天數
public int GetDay();
//獲取星期
public int GetWeek();
//獲取自1970-1-1以來的毫秒總數
public double GetMillisecondsTime();
//獲取當前時間字元串
public string GetLocalTimeStr();