我在Windows Phone平台的unity3d中制作了一个具有两个简单视图的演示应用程序.在第一个视图上,我有一个按钮和一个文本,从检查器中,我将一个事件分配给按钮(单击)以打开第二个视图.在此视图中,我在面板中有一个原始图像,用于将mainTexture分配给webCamTexture以便在手机上启动摄像头.
var webCamTexture = new WebCamTexture();
rawImage.material.mainTexture = webCamTexture;
webCamTexture.Play();
在第二个视图中,我有一个按钮可以关闭相机并显示第一个视图(当前关闭).webCameraTexture.Stop();
如果我多次这样做,则手机上的Play()和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();*/
//----
}
解决方法:
“ Resources.UnloadUnusedAssets()”有助于解决您的问题.
public void StopMyCamera()
{
webCamTexture.Stop();
Resources.UnloadUnusedAssets();
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。