我使用unity3d中的兩個簡單視圖爲windows phone平臺製作了一個演示應用程序。在第一個視圖中,我有一個按鈕和一個文本,從我分配給按鈕一個事件的檢查器(點擊)打開第二個視圖。在這個視圖中,我有一個用於將mainTexture分配給webCamTexture的面板中的原始圖像,用於在手機上啓動相機。如何在Windows Phone上統一使用WebCameraTexture的內存?
var webCamTexture = new WebCamTexture();
rawImage.material.mainTexture = webCamTexture;
webCamTexture.Play();
在第二視圖我有一個按鈕,我關閉相機,並顯示第一視圖(關閉電流)webCameraTexture.Stop();
如果我這樣做,很多次播放()和stop()內存在我的手機看起來像:
如何清除記憶,當我停止攝像,因爲有時給我一個錯誤「沒有足夠多的存儲,以完成此操作」和退出應用程序。
代碼開始停止攝像頭:
//call onClick Button (next)
public void StartMyCamera()
{
webCamTexture = new WebCamTexture();
rawImage.material.mainTexture = webCamTexture;
webCamTexture.Play();
}
//call onClick btn (back - close camera)
public void StopMyCamera()
{
//to stop camera need only this line
webCamTexture.Stop();
//----try to clear
/*GL.Clear(false, true, Color.clear);
GC.Collect();
GC.WaitForPendingFinalizers();
rawImage.StopAllCoroutines();*/
//----
}
嘗試在停止紋理時運行垃圾回收器。 –
我嘗試使用垃圾回收器GC.Collect();但沒有釋放內存仍然長大 –
因此,這不起作用。你應該繼續在Unity3d論壇上關注你的主題,並可能將它報告爲一個錯誤。 –