如题,destroyimadiate是立即将物体从场景hierachy中移除,并标记为 "null",注意 是带引号的null。这是UNITY内部的一个处理技巧。关于这个技巧有很争议。

destroy要等到帧末才会将物体从场景层级中移除并标记为"null"。

不管如何,二者都只是UNITY引擎层面的标记与处理,但在.NET底层,对象的内存都没有释放,只有手动GC.COLLECT或等待NET去GC时才会释放掉对象内存。

测试代码如下:点ADD按钮不断创建对象,点DEL按钮清除所有对象,通过观察进程内存数值来察看对象内存是否释放。

 using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using UnityEngine;
using UnityEngine.UI; public class MyGo : MonoBehaviour
{
byte[] data = new byte[];
}
public class testad : MonoBehaviour { Transform objs;
Text txt; Process proc;
// Use this for initialization
void Start () {
var btnadd = transform.Find("btnAdd").GetComponent<Button>();
btnadd.onClick.AddListener(OnClckAdd);
var btndel = transform.Find("btnDel").GetComponent<Button>();
btndel.onClick.AddListener(OnClckDel); objs = transform.Find("objs"); txt = transform.Find("Text").GetComponent<Text>();
proc = Process.GetCurrentProcess();
} void OnClckAdd()
{
for (int i = ; i < ; ++i)
{
var go = new GameObject();
go.AddComponent<MyGo>();
go.transform.SetParent(objs);
}
} void OnClckDel()
{
for (int i = objs.childCount - ; i >= ; i--)
{
GameObject.DestroyImmediate(objs.GetChild(i).gameObject);
} System.GC.Collect();
}
// Update is called once per frame float timer = ;
void Update () {
if (timer > 0.5f)
{
timer = ;
txt.text = ((int)(proc.WorkingSet64 / )).ToString();
}
timer += Time.deltaTime;
}
}

最新文章

  1. MongoDB学习笔记七:管理
  2. 杨辉三角 &amp;&amp; 鸽兔同校
  3. 要在一般处理程序中获取其他页面的session值
  4. .NET XML文件增删改查
  5. 【暑假】[实用数据结构]UVa11995 I Can Guess the Data Structure!
  6. Linux Shell常用命令手册(Updating)
  7. Selenium webdirver 操作浏览器
  8. NodeJS+express+mogondb学习笔记01
  9. activiti节点跳转
  10. 使用Navicat连接阿里云服务器上的MySQL数据库--转
  11. 在Windows Server 2008 R2下搭建jsp环境(一)
  12. django 后端反向生成url
  13. 信号(signal)
  14. 批量获取oracle的表和表字段注释【原】
  15. Centos创建定时任务和开机启动运行脚本
  16. 几种简单的编码(为什么使用ASCII码)
  17. docker知识复习
  18. pyhton-函数初级
  19. Java利用for循环输出空心的菱形
  20. springMVC入门程序。使用springmvc实现商品列表的展示。

热门文章

  1. const in C/C++
  2. 命令“&quot;xxx.exe&quot; xxx”已退出,代码为 n。这些错误是什么意思?(3 / 123 / 9009)
  3. ssh连接至Ubuntu服务器时,提示以下错误:REMOTE HOST IDENTIFICATION HAS CHANGED!
  4. php mysql apache 的字符集
  5. 安装 LAMP
  6. 常见企业IT支撑【3、SVN代码版本控制系统】
  7. OPC接口相关资料地址
  8. 谈谈GPU与FPGA的一些看法
  9. Java中的三元运算:a = (a &gt; b)?a:b
  10. Java-Runoob-高级课程:Java 集合框架