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 }