Destory()銷毀游戲對象
1 #region 銷毀物體 2 3 //Destory方法銷毀游戲對象 4 ///更常用的是對象池(ObjectPool)方式 5 GameObject obj4 = GameObject.CreatePrimitive(PrimitiveType.Capsule); 6 Object.Destroy(obj4); 7 8 GameObject.Destroy(this); //銷毀的是這個腳本本身,不是游戲對象 9 10 //銷毀游戲對象上的 11 GameObject.Destroy(gameObject.GetComponent<Rigidbody>()); 12 13 //設置幾秒后銷毀 14 GameObject.Destroy(obj, 5); //5秒后銷毀游戲對象 15 16 #endregion
DestroyImmediate(prefab) 立即銷毀游戲對象
1 //立即銷毀游戲對象 2 //如果要銷毀游戲對象,要用Destory() 來實現 3 GameObject.DestroyImmediate(obj); 4 //是否銷毀游戲對象的同時是否銷毀資源,默認false 5 //如果不需要刪除資源的情況下用Destory(); 如果是不刪除資源使用和Destory是一樣的 6 //如果要刪除一個預設, 7 Destroy(prefab); 8 DestroyImmediate(prefab); //這兩個都會報錯,用下面的方法銷毀資源 9 GameObject.DestroyImmediate(prefab,true);
跳轉場景不銷毀物體
1 void Awake() 2 { 3 //加載時候不銷毀, 4 ///1.當切換場景到一個新的場景時,如果在老場景中使用此函數,參數中被指定的對象Object將不會在新的場景中銷毀,在新場景中 5 ///還可以繼續看到置頂的Object物體對象 6 ///2.當Unity加載或者讀取一個新場景時,之前的場景所有的對象在內存中將都被四方,如果想保持指定的物體就需要使用此函數方法 7 ///2.被加載過來的物體,身上所欲的組件及時對應的屬性信息都不會改變 8 ///4.如果加載保存的不是游戲對象,而是對象上某個組件,其效果與整體保存游戲對象效果是一樣的 9 Object.DontDestroyOnLoad(this.gameObject); 10 11 }
當銷毀腳本時候,調用OnDestory()方法
1 void OnDestory() 2 { 3 //當腳本銷毀的時候調用 4 }