UnityVR一体机报错:GL_OUT_OF_MEMORY,[EGL] Unable to acquire context
Posted dzj2021
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UnityVR一体机报错:GL_OUT_OF_MEMORY,[EGL] Unable to acquire context相关的知识,希望对你有一定的参考价值。
开发和部署环境
Unity:2020.3.40
Pico G2 4k
一、 报错信息一览
-
(1) [EGL] Unable to acquire context:
E Unity : [EGL] Unable to acquire context: EGL_BAD_SURFACE: An EGLSurface argument does not name a valid surface (window, pixel buffer or pixmap) configured for GL rendering.
解决办法:多线程渲染争用,所以包这个错误,关闭多线程渲染。 -
(2) GL_OUT_OF_MEMORY
Not enough memory left to execute command
解决办法:GC或者性能问题,脚本后台改为IL2CPP试试
另外不要勾选实验性的垃圾回收策略【Use incremental GC】 -
(3) E Unity : [./Runtime/GfxDevice/opengles/GfxDeviceGLES.cpp line 449]
盲猜是图形接口Graphics Api设置有问题 -
(4)Build失败:processing gradle project failed with exception:sharing violation on path
猜测是多次build,文件被锁。
重启Unity工程,如果还有问题就重启电脑
二、修改配置
1、多线程渲染(Multithreaded Rendering):关闭
2、Graphics Jobs:关闭,它本身就是实验性质的
3、图形接口Graphics APIs设置:勾选为Auto Graphics API
4、脚本后台Scripting Backend:设置为【IL2CPP】
也许能提高一点电性能,只是猜测,没有测试数据。
5、Api兼容性设置为:【.NET 4.X】
这一个不知道有没有用,没有测试数据。
6、部署的硬件框架设置
勾选【ARMv7】和【ARMv64】
可能不需要勾选,没有详细测试对比
7、实验性的垃圾回收策略
另外不要勾选实验性的垃圾回收策略【Use incremental GC】,该策略与传统策略的对比,请自行搜索。
UnityVR开发第一周小结
做的东西有限,把一个PC项目改成VR项目
学习的东西:
两个手柄和一个头显都有自己的Canvas,做出来的小界面是随着设备的移动而移动的。
手柄的射线只能点击在自己Player内的Canvas的UI,不能点击放在PC端摄像机的UI,点击的方式和用鼠标、触屏点击一样。
据现在了解的用手柄和别的物体进行交互,有两种方法:
1. 发射射线,进行射线检测,可以与物体交互,适合像这次改别人的项目,交互的东西太多,直接封装起来,一起玩。
2.碰撞检测,手柄自动的,需要给交互的物体放碰撞器
其他的和正常开发的PC差不多。
现阶段已经完成了UI交互的VR修改。
以上是关于UnityVR一体机报错:GL_OUT_OF_MEMORY,[EGL] Unable to acquire context的主要内容,如果未能解决你的问题,请参考以下文章
UnityVR中 如何实现VR模式下滑动Slider让Cube变色。 如何滑动Slider
猿创征文|School StartsFirstProject~UnityVR(HTCVive设备开发)