Unity-销毁函数

1、Destroy动态销毁函数

删除一个游戏对象,组件或者资源。动态(游戏运行中)的删除某个物体,其资源和内存并没有立即被释放掉

C#:

public GameObject testDestroy;

voidUpdate(){

if(Input.GetKey(KeyCode.Space)){

Destroy(testDestroy);

}

}

2  、DestroyImmediate 立即销毁

立即删除一个游戏对象,组件或者资源,其资料和内存会立即被释放掉

C#=>static voidDestroyImmediate(Object obj, bool allowDestroyingAssets = false);

obj Object to be destroyed. 要销毁的对象

allowDestroyingAssetsSet to true to allow assets to be destoyed. 设置为true允许资源被销毁

该函数只在写编辑器代码时使用,因为延时的销毁永远不会在编辑模式下调用。在游戏代码推荐使用Object.Destroy代替。销毁总是延迟的(但在同一帧内执行),小心使用该函数,因为它能永久销毁资源。

c#:

public  Material  test_material;

voidUpdate(){

if(Input.GetKey(KeyCode.Space)){

DestroyImmediate(test_material,true);

}

}


3、DontDestroyOnLoad

当加载一个新场景时,目标对象不会被自动销毁。

当加载一个新的级别时,场景中的所有对象都被销毁,然后在新的水平上的对象被加载。为了水平加载调用dontdestroyonload在保存一个对象。如果对象是一个组件或游戏对象,那么它的整个变换层次结构将不会被破坏。

void Start ( ) {

DontDestroyOnLoad(gameObject);

}

void Update ( ){

if(Input.GetKey(KeyCode.Space)){

//场景转换

SceneManager.LoadScene(1);

}

}


你可能感兴趣的:(Unity-销毁函数)