Unity3D 物件管理緩衝池之美

2021-09-26 09:10:48 字數 1362 閱讀 4897

在遊戲中,經常會有產生/銷毀大量同類遊戲物件的需求,例如遊戲中的不斷出現的敵人、不斷重新整理的寶箱及遊戲中的一些特效,使用物件池就可以管理這些物件的產生和銷毀。

直接上**:

using unityengine;

using system.collections;

using system.collections.generic;

/** * 單例類,建立或者銷毀窗體

*/public class uiwindowmanager {

private static uiwindowmanager windowmag;

private static dictionarywindowcache = new dictionary();

public static uiwindowmanager getinstance() {

if (windowmag == null) {

windowmag = new uiwindowmanager();

} return windowmag;

} public gameobject openwindow(string windowname) {

if (windowcache.containskey(windowname)) {

closewindow(windowname);

return null;

} gameobject windowobject = resources.load(windowname) as gameobject;

gameobject prefabclone = gameobject.instantiate(windowobject);

prefabclone.transform.parent = uiroot.list[0].transform;

prefabclone.transform.localposition = vector3.zero;

prefabclone.transform.localscale = vector3.one;

windowcache.add(windowname, prefabclone);

return prefabclone;

} public void closewindow(string windowname) {

if (windowcache.containskey(windowname)) {

// debug.log(windowname);

gameobject.destroy(windowcache[windowname]);

windowcache.remove(windowname);

} }}

Unity3D 構建物件池

首先介紹一下啊介面 igoinfo 介面用於外界訪問物件的型別,以及呼叫其 函式 namespace jumpgame void recycle ipool 介面用於外界訪問其管理的物件型別,最大數量,初始化物件池,獲取物件,物件 using unityengine namespace jumpga...

Unity3D遊戲架構設計之物件管理 一

1概述 先用一張簡要的模組圖來幫助大家了解遊戲架構設計,了解物件管理在架構中所處的位置和他的作用是。實際的模組圖會比本圖的內容詳細,並且對模組的分割有其他的方式,這張圖只是為了幫助大家了解物件管理,做了很多精簡。要想講清楚物件管理,還得從下層的 資源管理器 說起。1.1資源管理 資源管理主要有兩個重...

unity3d研究之版本管理(SVN)

unity進行多人協作開發時必定會涉及資源 配置的版本管理。這裡介紹一下用svn git或其它版本管理系統進行unity工程版本管理的方法。新建乙個unity工程,目錄結構基本是這樣的 最終大約是這樣 unity工程中有很多二進位制檔案,會頻繁導致衝突,library目錄的檔案在每次unity ed...