1. 程式人生 > >Unity簡易物件池

Unity簡易物件池

廢話不多說,直奔主題  以下內容如有不恰當的地方,歡迎指正

關於物件池有款外掛 推薦部落格 雨鬆MOMO http://www.xuanyusong.com/archives/2974

什麼是物件池?物件池是用來幹什麼的?網上有很多解釋,這裡主要寫一下自己的理解

物件池,簡而言之,就是許多物件的池子,通過這個池子來達到一些物件的取放,何謂物件的取放在池子中就是開啟一個遊戲物體的開啟關閉通過這個"SetActive() " API達到效果. 那麼通過這些物件或者遊戲物體的狀態開關可以用來做些什麼呢,作用是什麼呢?

一 可以減少不必要的例項化與銷燬就是"Instantiate()與Destroy()"的呼叫.減少記憶體上的資源浪費與GC的回收壓力,比如在遊戲中一些頻繁使用的特效粒子,如果頻繁使用Insatantiate與Destroy加上粒子數量的繁多極可能會造成遊戲場景的崩潰與卡死.

二 使用的地方,很多 比如粒子特效,子彈 ,就是一些經常需要例項化與銷燬的物體或元件或指令碼 都可以使用. 下邊開始寫程式碼,比較簡單,只能滿足簡單的理解與使用.


    Dictionary<string, GameObject> 
 

下邊是池子的存取

裡邊還用到了單例,呼叫的話直接ObjPool.GetInstance().GetObj(name) 就可以