Я сделал демонстрационное приложение с двумя простыми представлениями в единстве3d для платформы Windows Phone. На первом представлении у меня есть кнопка и текст, от инспектора я назначаю кнопку один из событий (по щелчку), чтобы открыть второй вид. В этом представлении у меня есть необработанное изображение на панели, используемой для назначения mainTexture для webCamTexture для запуска камеры на телефоне.Как уменьшить память, используемую WebCameraTexture, в единстве на телефоне Windows?
var webCamTexture = new WebCamTexture();
rawImage.material.mainTexture = webCamTexture;
webCamTexture.Play();
Во втором View У меня есть кнопка, где я закрыть камеру и показать первый взгляд (закрытие ток) webCameraTexture.Stop();
Если я что много раз Play() и память Stop() на мой телефон выглядит :
Как я могу очистить память, когда я останавливаю камеру, потому что иногда дает мне сообщение об ошибке «Не хранилище для чего прийти завершить эту операцию» и выйти из приложения.
Код Start 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 и сообщать об этом как об ошибке. –