Перейти к основному содержимому

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

Что-то не работает? Найдите свою проблему ниже. Начните с первых двух: из-за них возникает большинство сложностей.

В предпросмотре работает, а в редакторе нет​

Так и задумано. Редактор не запускает вашу логику: скрипты, патчи, физика, таймеры и триггеры приближения выключены. Редактор только показывает сцену и даёт её править.

Это сделано специально. Анимация, которая играет, пока вы редактируете, мешала бы, а таймер менял бы проект. Чтобы увидеть проект в действии, откройте Предпросмотр.

Скрипт не запускается​

Проверьте по порядку:

  1. Объект включён, и все объекты выше него в иерархии — тоже.
  2. Его сцена активна. В AR-сцене это значит, что метка распознана.
  3. Компонент скрипта включён.
  4. Вы в Предпросмотре или в опубликованном проекте, а не в редакторе.

Скрипт перезапускается, когда вы меняете одно из его свойств в панели Настройки элемента. Поэтому случайная правка может выглядеть как сбой.

Изменение откатывается​

Обычно причин две:

  • Активно состояние. Пока выбрано состояние, ваши правки объекта сохраняются в это состояние. Когда вы переключаете состояния, сохранённые значения возвращаются. Чтобы изменить сам объект, сначала снимите выбор состояния.
  • Что-то другое задаёт это значение каждый кадр. Полоса на таймлайне, физическое тело или компонент Направление взгляда постоянно пишут в объект и перезаписывают вашу правку. См. следующий раздел.

Две анимации мешают друг другу​

Один и тот же объект меняют две вещи. Таймлайн пишет каждый кадр, поэтому он всегда побеждает переход.

Используйте для одного объекта что-то одно. Если нужен переход на том, чем управляет таймлайн, повесьте переход на дочерний объект или сделайте эту анимацию на таймлайне. См. Анимация.

Материал не меняется из скрипта​

Материал — это список слотов, поэтому material.update({ color }) записывает поле, которого на этом уровне нет. Меняйте слот:

material.update({
materials: [{ ...material.$data.materials[0], color: '#ff0000' }],
});

То же касается любого вложенного значения: update заменяет то, что вы передали, поэтому скопируйте в него значения, которые хотите сохранить.

Объект проваливается сквозь пол​

Импортированная 3D-модель не твёрдая, пока вы не добавите коллайдер. Добавьте его — обычно подходит куб или капсула.

Проверьте также, что у пола есть твёрдое тело и коллайдер. Геометрия без них — просто украшение, и предметы проходят сквозь неё. См. Физика.

Физический объект не встаёт туда, куда я его ставлю​

Положением динамического тела управляет физика и задаёт его заново на каждом шаге. Чтобы поставить объект в точку, используйте teleport. Чтобы двигать его — импульсы или силы.

Интерфейса нет на скриншоте​

Карточки рисуются перед 3D-видом, и снимок 3D-вида их не захватывает. Проверяйте интерфейс в Предпросмотре.

Значения поворота не совпадают​

Всё, что вы видите, — панель Настройки элемента, порты нод в патчах — показывает градусы. Скрипты читают и пишут радианы. Переводите значение, когда передаёте его между ними.

Ничего не происходит, когда я нажимаю клавишу​

Проверьте, как написано имя: в триггерах — дефисы (on-click), в шагах — подчёркивания (play_animation). Имя с опечаткой не вызывает ошибку. Оно просто ни с чем не совпадает.

Если событие использует привязку клавиши проекта, проверьте, что привязка ещё существует. Когда привязку удаляют, событие перестаёт срабатывать. На «любую клавишу» оно не переключается.

Срабатывает дважды​

Один и тот же триггер обрабатывается в двух местах: в событии и скрипте или в событии и патче. Оставьте что-то одно. См. События.

Объект появляется с задержкой​

Ресурсы загружаются, когда сцена уже работает, поэтому модели, текстуры и текст могут появиться чуть позже, чем откроется сцена. Если контент должен быть на месте с первого кадра, избегайте больших загрузок или прячьте сцену, пока она не будет готова.

Нет события «анимация закончилась»​

Такого события нет ни у одного инструмента анимации. Используйте шаг ожидания той же длины или отслеживайте время в скрипте.

Моя отмена убрала чужую правку​

История отмены у каждого своя и откатывается строго по порядку. Она не знает, что коллега за это время поменял тот же объект. В общей сцене исправляйте ошибку новой правкой, а не отменой назад через неё.

Не нашли ответ?​

Скорее всего, он есть на одной из этих двух страниц: