Unity 纹理从其他活动返回后不显示



我为Unity制作了一个Android插件,允许我的应用程序根据按下的按钮(Unity按钮)打开不同的Android活动。问题是,当你在其中一个活动中,按下后退按钮进入Unity活动时,屏幕显示为完全黑色,就好像没有加载纹理一样。当你按下主页按钮,然后返回应用程序时,也会发生这种情况。然而,当你按下它们应该在的地方时,这些按钮上的触摸事件就会被触发

显然,现在发生的是EGLContext正在丢失。这是显示它的日志:

03-15 15:10:00.340: W/GLThread(16135): [egl.swap] mRequestPaused = true ,surface.valid = true
03-15 15:10:00.340: I/GLThread(16135): mPaused is now true tid=12
03-15 15:10:00.340: I/GLThread(16135): releasing EGL surface because paused tid=12
03-15 15:10:00.340: W/EglHelper(16135): destroySurface()  tid=12
03-15 15:10:00.340: W/EglHelper(16135): finish() tid=12
03-15 15:10:00.350: I/GLThread(16135): releasing EGL context because paused tid=12
03-15 15:10:00.350: I/GLThread(16135): waiting tid=12 mHaveEglContext: false mHaveEglSurface: false mPaused: true mHasSurface: true mWaitingForSurface: false mWidth: 1280 mHeight: 752 mRequestRender: false mRenderMode: 1

GLSurfaceView参考文献中写道:

EGL上下文丢失

在某些情况下,EGL呈现上下文将丢失。这种情况通常发生在设备进入睡眠状态后醒来时。当EGL上下文丢失时,与该上下文关联的所有OpenGL资源(如纹理)都将自动删除。为了保持正确的渲染,渲染器必须重新创建它仍然需要的任何丢失的资源。onSurfaceCreated(GL10,EGLConfig)方法是一个方便的方法。

问题是,我真的不知道如何恢复上下文,因为这一切都是由Unity完成的。

有线索吗?

谢谢!

关闭播放器设置中的"实验图形作业">其他设置。这为我修复了它,https://issuetracker.unity3d.com/issues/android-app-does-not-resume-graphics-context-after-being-minimized-and-maximized-again-if-graphics-jobs-are-enabled.

最新更新