天天看點

Unity之設計模式:單例模式和對象池模式

1. 單例模式

單例模式原則:

隻能有一個執行個體。

必須自己建立自己。

必須給所有其他對象提供這一執行個體。

目的:第一條保證僅有一個執行個體(私有化構造函數),第二、三條保證提供一個通路它的全局通路點(提供一個供通路的公共方法/屬性)。

優點:避免一個全局使用的類被頻繁的建立與銷毀。

2. 對象池模式

目的:需要頻繁的建立和銷毀的物體,比如怪獸、金币、障礙物... 頻繁的建立和銷毀非常耗費資源,不如遊戲一開始就建立出來一堆,先隐藏起來,要使用的時候取消隐藏(從池子中取出),不使用了再隐藏(放回池子)。

案例:結合單例模式,做一個道具生成和銷毀對象池。要求主池子掌控所有物體的生成和銷毀(主池子隻有一個),子池子提供共有的方法和特征(取出、放回)。

1)提前把道具的預制體做好,放在資源檔案夾下。

Unity之設計模式:單例模式和對象池模式

 2)寫子池子邏輯:從子池子中取出、放回子池子、放回所有物體

3)寫主池子邏輯,管理所有子池子。

繼續閱讀