使用物件池的目的是為了避免頻繁例項化同一物件造成的記憶體浪費。
資源池類
using system.collections.generic;
using unityengine;
using system;
///
/// 資源池類
///
[serializable
]public
class
gameobjectpool
}//此時應該建立例項 (注意pool容量是否滿了)
if(golist.count>=maxamount)
//如果大於最大數量
gameobject temp= gameobject.
instantiate
(prefab)
as gameobject;
//例項化
golist.
add(temp)
;//例項化物件新增到pool
return temp;
//返回例項化物件
}}
資源池類的集合using system.collections.generic;
using unityengine;
///
/// gameobjectpoollist資源池集合
/// 繼承scriptableobject表示把自定義的類變為自定義資源配置的檔案
///
public
class
gameobjectpoollist
:scriptableobject
生成自定義資源配置檔案using unityengine;
using unityeditor;
public
class
poolmanagereditor
}
然後我們就得到了可以自定義資源的配置檔案。
如圖所示,這種自定義資源配置檔案不僅可以保持字串資料,還可以拖動預製資源進行配置。
資源池管理類
using system.collections;
using system.collections.generic;
using unityengine;
public
class
poolmanager
return _instance;}}
//路徑
private
static
string poolconfigpathtrefix =
"assets/framework/resources/"
;//檔名
private
const
string poolconfigpathmiddle =
"gameobjectpool"
;//檔案字尾
private
const
string poolconfigpahtpostfix =
".asset"
;//完整路徑
public
static
string poolconfigpath
}//定義用於儲存獲取到配置檔案資訊的字典
private dictionary<
string
, gameobjectpool> pooldict;
//構造方法
private
poolmanager()
}//得到例項物件
public
gameobject
getinst
(string poolname)
debug.
logwarning
("通過名字沒找到");
return
null;}
}
使用//通過名字獲取到乙個例項物件
poolmanager.instance.
getinst
("bullet"
);
TestDirector自定義管理 工程配置
1.進入工程配置介面 2.點選 customize project entities 彈出自定義字段對話方塊。這裡有六個表,每個表中的字段分為系統字段 system fields 和使用者自定義字段 user fields 選擇defect user fields節點,點選底部的new field按...
Object 類物件轉成自定義類物件
工作中遇到這樣的問題,某個物件的中的某個字段,設計不合理,該字段本應該是定義成乙個 物件直接用hibernate關聯,但是有時被定義成string型別,又不能直接修改欄位的型別 sql從表中查出一條記錄,有時關聯了幾個表,這時得到的物件一般是object型別 這時查詢到的ckreinvestalis...
關於資源管理類中的物件釋放問題
別人的 public enum resourcetype private hashtable m prefabtable dictionary dictionary public scenemgr public gameobject load resourcetype type,string pat...