Destroy和DestroyImmediate

Destroy(Object obj, float t = 0.0F);

删除一个游戏对象,组件或者资源.

物体obj现在被销毁或在指定了t时间过后销毁。如果obj是组件,它将从GameObject销毁组件component。如果obj是GameObject它将销毁GameObject全部它的组件和
GameObject全部transform子物体。实际物体的销毁总是延迟到当前更新循环后,但总是渲染之前完成。

实际上销毁该物体后,内存并没有立即释放 而是在你下下个场景中槽释放内存资源,就是你a场景中Destroy了 一般是在c场景中才真正释放该物体的内存资源

DestroyImmediate(Object obj, true/false);

立即销毁物体obj,强烈建议使用Destroy代替。

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

时间: 2025-01-04 21:10:49

Destroy和DestroyImmediate的相关文章

UNITY Destroy()和DestroyImadiate()的区别

using System.Collections; using System.Collections.Generic; using System.Timers; using UnityEngine; using System.Diagnostics; public class testdestroy : MonoBehaviour { GameObject cubeGo; Transform rootTrans; // Use this for initialization Stopwatch

unity, destroy all children

删除node的所有子节点: 错误方法: int childCount = node.transform.childCount;         for (int i=0; i<childCount; i++) {            GameObject child=node.transform.GetChild(i).gameObject;            Destroy(child);        } 以上方法之所以错误,是因为Destroy在下一帧才生效,而在本帧之内各child

unity, Destroy注意事项

Destroy不是立即发生作用,而是推迟到帧末,所以下面代码是错误的: void OnTriggerEnter(Collider other){   if (other.gameObject.tag == "coin") { m_score++; Destroy(other.gameObject); } } 会导致吃一个金币score加好几次的问题.因为OnTriggerEnter一帧之内可能会触发好几次.正确的写法是: void OnTriggerEnter(Collider oth

Unity中的DestroyImmediate

在写编辑器的过程中,想要动态销毁场景里面的游戏体时,被unity说不能用Destory,只能用DestoryImmediate,查看这个函数的api,该函数解释: 该函数只在写编辑器代码时使用,因为延时的销毁永远不会在编辑模式下调用.在游戏代码推荐使用Object.Destroy代替.销毁总是延迟的(但在同一帧内执行),小心使用该函数,因为它能永久销毁资源. 看似没问题,直接使用了DestrotyImmediate 1 private void DeleteTrans() 2 3 { 4 5 f

Delphi的对象注销方法Destroy和free

当您使用完对象后,您应该及时撤销它,以便把这个对象占用的内存释放出来.您可以通过调用一个注销方法来撤销您的对象,它会释放分配给这个对象的内存. Delphi的注销方法有两个:Destroy和Free.Delphi建议使用Free,因为它比Destroy更为安全,同时调用Free会生成效率更高的代码. 您可以用下列的语句释放用完的Employee对象: Employee.Free; 和Create方法一样,Free方法也是TEmployee从TObject中继承过来的.把您的注销放在try…fin

Command to destroy cluster

Command to destroy cluster: Get-Cluster Cluster1 | Remove-Cluster -Force-CleanupAD https://technet.microsoft.com/en-us/library/ee461005.aspx

Destroy Tunnels(矩阵水题)

Destroy Tunnels Time Limit: 2 Sec  Memory Limit: 128 MB Submit: 39  Solved: 22 [Submit][Status][Web Board] Description Zuosige always has bad luck. Recently, he is in hospital because of pneumonia. While he is taking his injection, he feels extremely

angularjs中的$destroy和$timeout

module.controller("TestController", function($scope, $timeout) { var onTimeout = function() { $scope.value += 1; timer = $timeout(onTimeout, 1000); }; var timer = $timeout(onTimeout, 1000); $scope.value = 0; $scope.$on("$destroy", func

Vue.extend构造器和$mount实例构造组件后可以用$destroy()进行卸载,$forceUpdate()进行更新,$nextTick()数据修改

html <div id="app"> </div> <p><button onclick="destroy()">卸载</button></p> <p><button onclick="reload()">刷新</button></p> <p><button onclick="tick()"