Unity 時間管理工具

2021-10-06 10:36:35 字數 1682 閱讀 1896

之前寫了乙個計時器,用乙個單例 timemanager 中的乙個儲存委託的字典,在update反覆執行實現,呼叫方法註冊實現,倒計時為0時呼叫委託,同時從字典中移除,登出沒有想到好方法,湊合著先用。

這兩天需要乙個技能流程配置,我的技能可能會有衝刺後攻擊,也可能只有衝刺,也可能只有攻擊。如果分別在物件上寫 if 各自管理流程,**排版看著很難受,需要加很多標記變數。所以在 timemanager 中新建乙個儲存委託的列表的字典,也是在 update 中反覆執行,呼叫方法註冊,委託返回 bool,當為true時下一幀依舊執行當前委託,當為 false 的時候委託結束,刪除當前委託,下一幀進入下乙個委託。乙個列表中的所有委託都執行結束之後,在字典中刪除本條流程列表,乙個流程就這樣執行結束。

public class timemanager : monosingleton

/// /// 跑流程列表

///

private void runprocess()

else if (_list[0] != null)}}

else}}

else if (m_processdict == null)

}/// /// 註冊流程列表

///

///

///

public int addprocesslist(listprocesslist)

m_processdict.add(processindex, processlist);

processindex++;

return processindex;

}/// /// 移除流程列表

///

///

public void removeprocesslist(int processindex)

if (m_processdict.containskey(processindex))

}/// /// 倒計時

///

private void countdown()

else if (timeeventarr[i] != null)

else}}

else if (m_countdowndict == null)

}/// /// 新增計數器事件

///

/// 時間

/// 事件

public void addcountdownevent(timeevent timeevent, float counttime)

// todo 新增失敗需要丟擲異常

if (!m_countdowndict.containskey(timeevent))

}/// /// 移除計數器事件

///

/// 事件

public void removecountdownevent(timeevent timeevent)//, string objectname)

// todo 移除失敗需要丟擲異常

if (m_countdowndict.containskey(timeevent))

}}// 如果返回值為 false 則該流程結束,進入下一流程

public delegate bool processevent();

// 計數器事件

public delegate void timeevent();

常見時間管理工具

時間管理有很多種方法和系統,而getting things done gtd 就是其中一套行之有效,也是現在最受歡迎的系統。gtd翻譯過來就是 把事情做完 gtd的核心理念概括一句話,就是 你必須記錄下來你要做的事,然後整理安排自己一一去執行了。gtd的五個核心原則是 收集 整理 組織 回顧 執行。...

開源伺服器管理工具 3個開源時間管理工具

開源伺服器管理工具 對於許多人來說,他們引用使用基於linux的作業系統的原因之一就是生產力。如果您是只根據自己的喜好對系統進行了調整的超級使用者,尤其是如果您熟練使用命令列,則很有可能已經實現了生產率的顯著提高。但是,您是否必須成為極端使用者才能利用開放源 軟體的能力來提高生產率?絕對不!除了生產...

高效時間管理工具之四象限法則

生活中的我們每天都忙得不知所以然,面對撲面而來的一堆事情,你會選擇怎麼去做?或許是先來先服務,每一件事情不分先後都做,或許是分析每一件利弊去做 下面由我來給大家介紹一種高效的時間管理法則 四象限法則 之前就看過,但是記得模模糊糊,生活之中偶爾會用到 今天算是正式為他正名,把他介紹給大家 這是我自己畫...