【发布时间】:2018-10-31 10:01:49
【问题描述】:
我已经编写了一个 EditorWindow,它将摄像机的视图呈现到一个附加的编辑器窗口中。为了在调整窗口大小时立即适应,在tick时间重新分配相机的目标纹理(实际上只在必要时进行)以演示问题:
public class PlayerViewWindow : EditorWindow
{
private Camera PlayerViewCamera; // References a camera in the scene
public void OnGUI()
{
PlayerViewCamera.targetTexture = new RenderTexture((int)position.width, (int)position.height, 24, RenderTextureFormat.ARGB32);
PlayerViewCamera.Render();
GUI.DrawTexture(new Rect(0, 0, position.width, position.height), PlayerViewCamera.targetTexture);
}
}
当我激活此窗口时,重新分配相机目标纹理会导致内存泄漏。那么:为什么旧的目标纹理没有被垃圾收集? 有没有办法显式销毁旧的目标纹理?
谢谢
【问题讨论】: