不经意间的内存泄露

Babybus-u3d技术交流-不经意间的内存泄露

实践证明,所有继承至UnityEngine.Object的对象,都需要手动Destroy,否则必然导致内存泄露。

一般我们不会忘记Destroy GameObject对象,因为在层级树中可以看到。但是类似于AudioClip的对象却可能被我们忽略,unity中有个对象池管理这些东西,保存了它们的引用,所以不能自动垃圾回收(引用计数不为0)

如下面代码:

Destroy (audio.clip);audio.clip = Microphone.Start("", false, 30, 44100);

先前的Microphone.Start 返回的对象不仅仅被microphoneClip所引用,所以必须Destroy。

你可能感兴趣的:(不经意间的内存泄露)