mv

2018年3月27日 星期二

Unity 使用c# 委派事件做簡單引擎

為什麼要用委派事件來做引擎?

最近在寫些小遊戲,遊戲流程規劃不外乎固定流程的呼叫與回傳,目前用到委派方法來做簡單的事件系統,好達成後續程式之間傳遞。


如何做?

1.先寫好一個class做服務器端,整個遊戲流程就是由物件去訂閱服務器的委派事件,由服務端發出所有遊戲中的改變給已訂閱物件。

2.撰寫一個父類別,用來訂閱服務器端的委派。(這個類別包含訂閱、回傳訂閱...等)

3.遊戲中所有物件都繼承父類別,並在物件中調用父類別寫好的訂閱/接收委派事件。

4.這樣寫可能還是不清楚,簡單來說服務端委派了多個不同事件(升級事件、得分事件、遊戲結束事件),遊戲物件根據需要,把不同的事件訂閱進去,這樣只要遊戲發生"升級事件",有訂閱的物件就會收到反饋,這樣就完成簡單引擎製作了。


這樣有什麼優點?

1.程式間的傳遞規則化,可變性高

2.不用在Update寫一堆程式偵測條件達成沒(我是初學者之前真的這樣做...)

這樣有什麼缺點?

1.製作簡單遊戲時,這樣寫有點長


沒有留言:

張貼留言