物件池是一種通過空間來換取時間的思想
佔記憶體,時間消耗少
適用性:頻繁建立/銷毀遊戲物件
字典《型別,物件》
資料結構:dictionary>
核心成員
1.通過物件池建立物件
2.**物件
using system.collections;
using system.collections.generic;
using unityengine;
namespace common
///
/// 物件池
/// 只用一次,繼承單例類
///
public
class
gameobjectpool
:monosingleton
///
/// 【重要一】通過物件池,建立物件
///
/// 類別
/// 需要建立例項的預製體
/// 位置
/// 旋轉
/// 返回需要的物件
/// 結構清晰
public
gameobject
createobject
(string key,
gameobject prefab,
vector3 pos,
quaternion rotate)
//3.設定物件的位置,旋轉(提取方法)
useobject
(pos, rotate, go)
;return go;
}//1.查詢可用的物件,返回物件
private
gameobject
findusableobject
(string key)
return
null;}
//2.建立新的物件,並加入物件池,返回乙個物件
private
gameobject
addobject
(string key,
gameobject prefab)
return go;
}//鉤子...
//3.設定物件的位置,旋轉
private
void
useobject
(vector3 pos,
quaternion rotate,
gameobject go)
}///
/// 【重要二】**物件
///
/// 需要被**的物件
/// 延遲時間,預設為0
public
void
collectobject
(gameobject go ,
float delay=0)
public
ienumerator
collectobjectdelay
(gameobject go,
float delay =0)
///
/// 清空某個key類別,和其遊戲物件
///
/// 類別
public
void
clear
(string key)
//常規倒敘刪除,遊戲物件
for(
int i = cache[key]
.count-
1; i >=
0; i--
)//刪除類別
cache.
remove
(key);}
///
/// 清除全部類別
///
///
public
void
clearall
(string key)
//將所有字典的key存入list中
list<
string
> keylist =
newlist
<
string
>
(cache.keys)
;//讀a刪除b,遍歷a集合,刪除字典記錄
foreach
(var item in keylist)}}
}
using common;
using system.collections;
using system.collections.generic;
using unityengine;
using system;
namespace ns
//每次通過物件池建立時執行一次
public
void
onreset()
private
void
update()
}}}
using common;
using system.collections;
using system.collections.generic;
using unityengine;
namespace ns
//************測試**************
private
void
ongui()
if(guilayout.
button
("清空類別"))
if(guilayout.
button
("清空全部"))
}}}
Unity 資源池,物件池,Object Poor
將一定數量的物件預先儲存在資源池中,當需要的時候使用,不用的時候再放回。這樣節約了很多效能,不必每次都去生成然後再銷毀。資源池常有的引數 資源的種類,資源的初始數量,資源的最大數量。假如我們在遊戲中需要不停的使用幾種特效,然後銷毀該特效 或者不停的生成乙個物體 子彈等 然後再去銷毀這個物體。頻繁使用...
unity中物件池運用
最近在研究物件池在unity中的運用 物件池,通常用於在那些需要經常建立又銷毀的物件 比如我們場景中的小怪,經常需要建立和銷毀,我們就可以在小怪銷毀的時候,不真正的銷毀而是,而是把它放入物件池中 等到下一次我們需要建立小怪的時候,再從物件池中取出來 由於物件池的物件沒有真正銷毀,而手機的記憶體又是如...
Unity 物件池之SubPool
首先明確物件池中的一些元素 1,預設 2,集合 3,名字標識 4構造 using system using system.collections.generic using unityengine using system.text public class subpool 構造 public su...