У меня проблема с Unity3D. Я создал игру с Unity 4.6.2f1. Моя проблема заключается в том, что после всплеска экрана происходит сбой игры (вроде попытки постоянно открываться). Странная часть - игра отлично работает на моих телефонах и планшетах. У меня есть Nexus 5 (с Android 5.1.1), Iocean X7S (с Android 4.2.2), планшет PolyPad (Android 4.2.2), Teclast X98 (Android 4.4.4). У меня были некоторые бета-тестеры, у которых есть LG G2, Samsung S5660, Sony Xperia Z3, HTC M8. Из этих 4 телефонов только Samsung заставляет его работать, а другие проваливаются. Сначала я понял, что это потому, что отображаются биты. Поэтому я отключил 32-битовый буфер отображения. Тот же результат. Затем я triend, чтобы изменить форсирование Open GL ES версии. Я попытался построить его с помощью «Автоматического» раздела - я не знаю, было ли это неудачно или нет, но он начал исчезать до черных через некоторое время даже в моих устройствах, поэтому я думаю, что это не вариант для исправления. Затем я попытался заставить его использовать Open GL ES 3.0, снова сработал. Затем я где-то читал, что причиной этого может быть мой плагин AdMob, поэтому я удалил компоненты AdMob из сцен и удалил все файлы плагина AdMob. Тот же результат. Поскольку неисправные телефоны не под моим контролем, его действительно трудно обнаружить реальную проблему легко, потому что мне действительно нужно просить моих друзей для каждого теста, так как мои тестеры - мои друзья, и у них есть своя личная жизнь, по их словам, ее более важная чем тестирование моей игры целый день. Кстати, я хотел бы добавить это тоже, как месяц назад все было в порядке. Он работал нормально на телефоне моих друзей (тот, у кого есть G2). Я получаю подозрение от подписания apk. Потому что перед подписанием, когда я отправлял его без знака, он работал. Конечно, это может быть неправильная идея. Я не эксперт, поэтому я здесь для вашей помощи. Я действительно хотел бы знать, почему это происходит, и я хочу это исправить. Благодаря!Android - Unity3D замерзает в заставке на некоторых телефонах
ответ
Хорошо, я нашел решение. Оказывается, один из моих сценариев отвечал за эту проблему. Поэтому я удалил его и переписал другой скрипт, который выполняет ту же работу. Я предполагаю, что скрипт пытался использовать RAM снова и снова, поэтому из-за этого процессоры типа Adreno 330 пытаются заблокировать Open GL Open для предотвращения полного сбоя телефона. Это, конечно, только предположение. Но если у вас возникла такая проблема, как у меня, особенно в процессорах Adreno 330, попробуйте сначала проверить свои коды для любой перегрузки.
не могли бы вы быть более конкретными, чем «использовать RAM снова и снова»? кто-то может наткнуться на эту тему и может быть рад найти подробный ответ. что вы делали иначе в своем переписанном сценарии? – JeanLuc
На самом деле я не _that_ определенно о перегрузке ОЗУ, но то, что я вижу, мой старый скрипт пытался собрать информацию о языке системы и менял спрайты в соответствии с этим, пока он получал информацию о касании экрана, dpi на экране, PlayerPrefs для рекорда и т. Д. Получение этих сведений не должно быть проблемой в обычном режиме, но я предполагаю, что в то время как я изменяю спрайты в соответствии с языком, другая часть скрипта пытается изменить их с тегом, который я хочу увидеть на сцене, чтобы коснуться. Так что создает бесконечный цикл, который изменяет спрайты, которые, вероятно, заставляют процессор. – BlocBloc
я столкнулся с подобными проблемами, иногда проблема заключается в память устройства, пустая ссылка и т.д., также можно попробовать принудительную Open GL ES 2.0
srry не могут комментировать
Я уже пробовал форсировать Open GL ES до 2.0, и я также попытался заставить его 3.0 с сжатием текстур. К сожалению, оба пути потерпели неудачу. – BlocBloc
Возможно, мы сможем помочь, если вы разместите ошибку logcat с замораживающих телефонов. – JeanLuc
Здесь, http://imgur.com/MvmLiOQ. Это от LG G2 (5.1.0), спасибо – BlocBloc
вы используете какие-либо плагины или сторонние библиотеки в своей игре? – JeanLuc