从另一个活动返回后,Unity Textures不会显示

时间:2012-03-15 15:36:21

标签: android opengl-es unity3d

我为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完成。

任何线索?

谢谢!

1 个答案:

答案 0 :(得分:0)

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