一般情況下我們使用物件池是物體的建立和管理。但在很多情況下需要批量建立的物體需要做一些邏輯處理,這樣我們需要記錄物件池對應的資料狀態。
所以我們就直接把物件作為管理物件,這樣我們可以在物件裡面做一些邏輯處理還能便於物體管理。
作為物件管理類,那麼我們必須要乙個同乙個父類作為管理的類別。在父類裡面包含一些基礎的函式方法。
便於在例項化的時候統一規範。
這就是普通的物件管理類,把物件想物體建立一樣管理。public
class
itemclassbase
public virtual void
init
(transform trans)
public virtual void
show
(transform parenttransform)
public virtual void
hide()
public virtual void
setsiblingindex
(int index)
}
public
class
objectpoolsmgr
return buildroot;}}
dictionary dicpooltrans =
newdictionary
(); dictionary> m_dicpool =
newdictionary
>()
; dictionary> m_dicuse =
newdictionary
>()
;//建立物件的物件池 預設1個
public
t getitemobject<
t>
(transform trans, int count =
1) where t
: itemclassbase
elseif(
!m_dicpool.
containskey
(name)
|| m_dicpool[name]
.count ==0)
} m_t =
getitem
(name)ast
;return m_t;
}//歸還
public
void returnitem<
t>
(t m_this =
null
, bool isall =
true
) where t
: itemclassbase
m_dicuse.
remove
(name);}
}else
} itemclassbase getitem
(string itemname)
m_dicuse[itemname]
.add
(m_item)
; m_dicpool[itemname]
.remove
(m_item)
;return m_item;
}void
additem
(string name, itemclassbase item)if(
!m_dicpool[name]
.contains
(item))}
}
public
class
a: itemclassbase
}
void
start()
void
ondesable()
Unity基礎 物件池
物件池是一種通過空間來換取時間的思想 佔記憶體,時間消耗少 適用性 頻繁建立 銷毀遊戲物件 字典 型別,物件 資料結構 dictionary 核心成員 1.通過物件池建立物件 2.物件 using system.collections using system.collections.generic...
Unity 資源池,物件池,Object Poor
將一定數量的物件預先儲存在資源池中,當需要的時候使用,不用的時候再放回。這樣節約了很多效能,不必每次都去生成然後再銷毀。資源池常有的引數 資源的種類,資源的初始數量,資源的最大數量。假如我們在遊戲中需要不停的使用幾種特效,然後銷毀該特效 或者不停的生成乙個物體 子彈等 然後再去銷毀這個物體。頻繁使用...
unity中物件池運用
最近在研究物件池在unity中的運用 物件池,通常用於在那些需要經常建立又銷毀的物件 比如我們場景中的小怪,經常需要建立和銷毀,我們就可以在小怪銷毀的時候,不真正的銷毀而是,而是把它放入物件池中 等到下一次我們需要建立小怪的時候,再從物件池中取出來 由於物件池的物件沒有真正銷毀,而手機的記憶體又是如...