Unity3D中销毁对象的方式
来源:互联网 发布:安卓5.1的java模拟器 编辑:程序博客网 时间:2024/06/04 17:46
转载自:http://m.blog.csdn.net/blog/u010145745/39205461
unity中提供了销毁对象的三种方法:
- Destroy方法
- DestroyImmediate方法
- DontDestroyOnLoad方法
Destroy方法:
static void Destroy(Object obj, float t = 0.0F);
删除一个游戏物体或组件等。如果Object实际上为组件,则会将其从gameobject中删除并销毁;如果实际上为gameobject则将销毁它的全部组件及其所有子物体~可以指定多长时间后销毁,当然实际上销毁总是存在一定的延迟的,延迟到当前更新循环后和渲染之前。
销毁组件~
public class DestroyTest : MonoBehaviour {// Use this for initializationvoid Start () {}// Update is called once per framevoid Update () {var collider = gameObject.GetComponent<Collider>();if (collider){Debug.Log("collider exists");Destroy(collider);}}}原来运行后
销毁该对象(无子对象情况)~
public class NewBehaviourScript : MonoBehaviour {void Start () {var cylinder = GameObject.CreatePrimitive (PrimitiveType.Cylinder);}void Update () {var cylinder = GameObject.Find("Cylinder");if (!flag && cylinder){flag = true;Debug.Log("cylinder exists~");Destroy(cylinder);}}bool flag = false;}
并且Hierarchy中不存在Cylinder对象~
销毁该对象及子对象的一切~
var cube = GameObject.Find("Cube");if (cube){flag = true;Debug.Log("cube exists");Destroy(cube);}原先:运行后:
DestroyImmediate方法:
static void DestroyImmediate(Object obj, bool allowDestroyingAssets = false);
尽量使用Destroy,该函数在写编辑器代码时使用,延时的销毁永远不会在编辑模式下调用。务必小心的是,该函数会将资源永久销毁,绝不要遍历数组然后依次销毁遍历的元素。其中,allowDestroyingAssets如果设置为TRUE则资源就允许被销毁~
DontDestroyOnLoad方法:
static void DontDestroyOnLoad(Object target);
作用是在加载新场景的时候使目标物体不被自动销毁~
当加载一个新关卡时,所有场景中的所有的物体都会被销毁,然后新关卡中的物体被加载进来,为了保持在加载新关卡时物体不被销毁,使用DontDestroyOnLoad保持,如果物体是一个组件或游戏对象,则所有的Transform层次都不会被销毁,全部保留下来。
还发现了一个现象,就是Object中的静态函数在程序中调用的时候,可以直接调用,不用写类名,当然写了也没有错,其他类的静态函数一定要写类名.函数名()来调用静态函数。
0 0
- Unity3D中销毁对象的方式
- C#中对象的销毁和内存回收的方式
- Unity3D获取对象的5中方式
- Java中对象的销毁
- javascript中对象的销毁
- Java 中对象的销毁
- Java中对象的销毁
- PHP对象销毁方式
- U3D中对象的自动销毁
- MDI中对象的销毁过程
- java中对象的创建和销毁
- Java创建和销毁对象的几种方式
- 在Unity3D中动态创建对象和创建Prefab原型对象的三种方式
- 在Unity3D中动态创建对象和创建Prefab原型对象的三种方式
- 在Unity3D中动态创建对象和创建Prefab原型对象的三种方式
- 在Unity3D中动态创建对象和创建Prefab原型对象的三种方式
- 在Unity3D中动态创建对象和创建Prefab原型对象的三种方式
- 在Unity3D中动态创建对象和创建Prefab原型对象的三种方式
- 恶补jquery(四)jquery中事件--冒泡
- 双向链表
- 黑马程序员——Java高新技术——内省JavaBean及BeanUtils的应用、注解等
- 《剑指Offer》学习笔记--面试题14:调整数组顺序使奇数位于偶数前面
- hdu 3172 Virtual Friends
- Unity3D中销毁对象的方式
- 事件驱动设计
- 关于ling to sql左右连接的问题
- 设计模式学习--策略模式(Strategy Pattern)
- 闭合浮动元素
- 洪湖水中的浪潮
- c++调用java弹出提示框
- MySQL学习笔记_1_MySQL数据库管理系统概述
- 介绍Linux中cp直接覆盖不提示的方法