1、Destroy動(dòng)態(tài)銷毀函數(shù)
刪除一個(gè)游戲?qū)ο缶蹩剩M件或者資源检痰。動(dòng)態(tài)(游戲運(yùn)行中)的刪除某個(gè)物體,其資源和內(nèi)存并沒(méi)有立即被釋放掉
C#:
public GameObject testDestroy;
voidUpdate(){
if(Input.GetKey(KeyCode.Space)){
Destroy(testDestroy);
}
}
2 ?苇经、DestroyImmediate 立即銷毀
立即刪除一個(gè)游戲?qū)ο笞咐恚M件或者資源,其資料和內(nèi)存會(huì)立即被釋放掉
C#=>static voidDestroyImmediate(Object obj, bool allowDestroyingAssets = false);
obj Object to be?destroyed. 要銷毀的對(duì)象
allowDestroyingAssetsSet to true to allow assets to be destoyed. 設(shè)置為true允許資源被銷毀
該函數(shù)只在寫編輯器代碼時(shí)使用扇单,因?yàn)檠訒r(shí)的銷毀永遠(yuǎn)不會(huì)在編輯模式下調(diào)用商模。在游戲代碼推薦使用Object.Destroy代替。銷毀總是延遲的(但在同一幀內(nèi)執(zhí)行)蜘澜,小心使用該函數(shù)施流,因?yàn)樗苡谰娩N毀資源。
c#:
public ?Material ?test_material;
voidUpdate(){
if(Input.GetKey(KeyCode.Space)){
DestroyImmediate(test_material,true);
}
}
3鄙信、DontDestroyOnLoad
當(dāng)加載一個(gè)新場(chǎng)景時(shí)瞪醋,目標(biāo)對(duì)象不會(huì)被自動(dòng)銷毀。
當(dāng)加載一個(gè)新的級(jí)別時(shí)装诡,場(chǎng)景中的所有對(duì)象都被銷毀银受,然后在新的水平上的對(duì)象被加載践盼。為了水平加載調(diào)用dontdestroyonload在保存一個(gè)對(duì)象。如果對(duì)象是一個(gè)組件或游戲?qū)ο篁就粒敲此恼麄€(gè)變換層次結(jié)構(gòu)將不會(huì)被破壞宏侍。
void Start ( ) {
DontDestroyOnLoad(gameObject);
}
void Update ( ){
if(Input.GetKey(KeyCode.Space)){
//場(chǎng)景轉(zhuǎn)換
SceneManager.LoadScene(1);
}
}