小白_Unity引擎_销毁游戏对象

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 } 

原文地址:https://www.cnblogs.com/CeasarH/p/9273543.html