Я создал плагин Android для Unity, который позволяет моему приложению открывать различные действия Android в зависимости от нажимаемой кнопки (кнопки Unity).Проблема заключается в том, что когда вы выполняете одно из этих действий и нажимаете кнопку «Назад», чтобы перейти к действию 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.
Любые подсказки?
Спасибо!