【发布时间】:2020-12-25 15:25:36
【问题描述】:
在场景中创建(实例)对象时,在自定义脚本(MonoBehaviour)脚本中,会创建一个 RendereTexture 对象,并且在销毁该对象后,是否也释放了 RendererTexture 的内存?
【问题讨论】:
标签: c# unity3d video render texture2d
在场景中创建(实例)对象时,在自定义脚本(MonoBehaviour)脚本中,会创建一个 RendereTexture 对象,并且在销毁该对象后,是否也释放了 RendererTexture 的内存?
【问题讨论】:
标签: c# unity3d video render texture2d
您可以打开 Profiler 并简单地自己进行测试。
剧透:我认为不是。
Afaik any Texture 不会被自动 GC 收集,但需要明确销毁
如果你想确定你可以简单地做例如
private void OnDestroy()
{
if(renderTextureReference) Destroy(renderTextureReference);
}
在您的组件中。
该函数释放渲染纹理使用的硬件资源。纹理本身不会被破坏,使用时会自动重新创建。
与其他“原生引擎对象”类型一样,重要的是要注意任何渲染纹理的生命周期,并在使用完它们后释放它们,因为它们不会像普通托管类型那样被垃圾收集。
【讨论】: