Unity 資源池,物件池,Object Poor

2021-08-22 05:52:07 字數 731 閱讀 7670

將一定數量的物件預先儲存在資源池中,當需要的時候使用,不用的時候再放回。這樣節約了很多效能,不必每次都去生成然後再銷毀。資源池常有的引數:資源的種類,資源的初始數量,資源的最大數量。

假如我們在遊戲中需要不停的使用幾種特效,然後銷毀該特效;或者不停的生成乙個物體(子彈等),然後再去銷毀這個物體。頻繁使用下來很浪費效能。但是如果我們事先就已經生成和儲存了很多個這種資源,使用的時候再一一出來,這樣不僅達到了想要的效果而且還節約了效能。

沒有初始數量的資源池大致流程圖:

獲取資源:

//type為資源種類的列舉型別

public gameobject getinstance(type type, transform t = null, bool worldposstays = false)

list.removeat(list.count - 1);

return temp;

}else//沒有資源則生成資源

return instantiate(go);}}

儲存資源:

public void storeinstance(type type, gameobject go)

else//資源已經滿額,則銷毀該資源

}

Unity基礎 物件池

物件池是一種通過空間來換取時間的思想 佔記憶體,時間消耗少 適用性 頻繁建立 銷毀遊戲物件 字典 型別,物件 資料結構 dictionary 核心成員 1.通過物件池建立物件 2.物件 using system.collections using system.collections.generic...

unity資源管理 記憶體池

記憶體池思想 建立物件時,先檢查記憶體池中是否有快取物件,如果沒有再建立新的。刪除物件時,不立即銷毀,快取一段時間,避免重複建立,提公升執行效率,用空間換時間的做法。常用怪 npc 技能特效 血條等。基本功能 儲存,獲取,智慧型刪除。實現方式 基本物件 public class poolitem p...

unity中物件池運用

最近在研究物件池在unity中的運用 物件池,通常用於在那些需要經常建立又銷毀的物件 比如我們場景中的小怪,經常需要建立和銷毀,我們就可以在小怪銷毀的時候,不真正的銷毀而是,而是把它放入物件池中 等到下一次我們需要建立小怪的時候,再從物件池中取出來 由於物件池的物件沒有真正銷毀,而手機的記憶體又是如...