Skip to content

FAQ и Решение проблем

Здесь собраны ответы на самые частые вопросы и решения типичных проблем, с которыми можно столкнуться при оптимизации WebGL.

Установка и Демо-сцена

В: Я открыл демо-сцену, а все материалы и объекты в ней розовые!

О: Ваш проект использует URP, а демо-сцена по умолчанию настроена под BiRP. Просто распакуйте пакет по пути WebAdaptivePerformance/Demo/Import Me (URP).unitypackage. Шейдеры обновятся автоматически.

В: Я установил плагин, но визуально в игре вообще ничего не меняется.

О: Пройдитесь по этому чек-листу:

  • Плагин включен в Project Settings? Скейлеры добавлены и активны?
  • Графика в Unity изначально выкручена на максимум? Плагину нечего снижать, если и так стоят низкие настройки.
  • Возможно, устройство легко справляется с нагрузкой, и FPS стабилен. Добавьте префаб Dashboard на сцену, чтобы увидеть, что сейчас решает Индексатор.
  • Если всё настроено верно, но эффекта нет — свяжитесь с нами, мы поможем разобраться.

Разрешение и Интерфейс (UI)

В: Разрешение не меняется (Resolution Scaler не работает).

О: Две самые частые причины:

  1. Если вы используете BiRP и режим RenderTextureScaling: проверьте поле Target Tags в настройках скейлера. Если камера в вашей игре называется иначе (не MainCamera), обязательно впишите её тег. Иначе плагин её просто не найдет.
  2. Режим NativeBrowserScaling работает исключительно в собранном WebGL-билде. В редакторе Unity он ничего не делает.
В: При падении FPS мой UI (интерфейс) тоже становится размытым!

О: Убедитесь, что в BiRP вы выбрали RenderTextureScaling. Сам Canvas при этом должен быть переведен в режим Screen Space - Overlay (либо использовать отдельную UI-камеру).

В: Стандартные кнопки UI нажимаются нормально, но мои собственные клики мышкой по 3D-объектам сбились.

О: Базовые события EventSystem автоматически чинятся нашим компонентом WebScaledPhysicsRaycaster. Однако, если вы делаете кастомный рейкаст через код (Camera.ScreenPointToRay()), он будет бить мимо из-за изменения размера текстуры. Используйте специальный метод плагина: WebRaycasterUtility.TryComputeScaledRay().

Метрики и Поведение системы

В: Качество графики снизилось из-за лагов. Сейчас FPS снова высокий, но графика не улучшается!

О: Скорее всего сработала защита Anti Yo-Yo Penalty System. Плагин временно заблокировал повышение, чтобы избежать мерцания картинки.

  • Если графика должна восстанавливаться быстрее, уменьшите параметр Penalty Lockout Duration (например, до 10 секунд).
  • Также проверьте параметр Increase Cooldown — возможно, выставлено слишком долгое время ожидания.
В: Дашборд постоянно показывает CPU Bottleneck или Unknown, хотя сцена пустая.

О: Обязательно включите Frame Timing Stats в Player Settings. Дополнительно проверьте, что Application.targetFrameRate = -1. Снятие жесткого лимита кадров избавляет метрики от искусственных задержек setTimeout внутри браузера.

В: Персонаж или физические объекты начинают дергаться при сильных лагах.

О: Это побочный эффект работы Physics Step Scaler. Он меняет Time.fixedDeltaTime, чтобы спасти процессор от перегрузки. Чтобы движение визуально оставалось плавным, включите режим Interpolate на компоненте Rigidbody вашего персонажа.

В: Скейлеры теней включены, но производительность не растет, а тени на месте.

О: Плагин управляет только динамическими (Realtime) тенями. Если освещение в вашей сцене запечено (Baked/Lightmaps), скейлеры на него никак не повлияют.

Кастомные скейлеры

В: Мой кастомный скейлер отлично работает в Editor, но бесследно исчезает в WebGL-билде!

О: Компилятор IL2CPP вырезал его при сборке как "мертвый код". Всегда добавляйте атрибут [UnityEngine.Scripting.Preserve] над классом вашего кастомного скейлера.