Как мне сделать расположение префаба чётко над маркером: ошибка с расположением префаба в AR проекте?
Сейчас ситуация такая: проблема состоит в том, что префаб появляется в разных местах и почти случайно
Логика приложения такая:
Сейчас ситуация такая: сначала пользователь сканирует qr код, из которого приложение получает json файл с ссылками фото + видео (это триггерная пара, при наведении на фото приложение должно воспроизводить поверх фото видео), при этом я делаю несколько экземпляров фото, чтобы исправить проблему с размерами VideoQuad (по итогу сам префаб нужного размера, но появляется не там, где нужно)
https://disk.yandex.ru/d/0Y52bvbz6xh4oA
По вводным: ссылка на zip архив проекта
По вводным: сделано на Unity 2021.3.45f1
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Если в AR-проекте префаб не становится четко над маркером, почти всегда проблема в системе координат: вы создаете объект не как дочерний объект anchor/marker, используете world position вместо local position или не учитываете pivot/scale префаба. В AR нужно привязывать контент к найденному трекуемому объекту, а не просто ставить его в мировые координаты один раз.
Для Unity + AR Foundation типовая логика такая: при обнаружении image marker берете transform tracked image и создаете prefab дочерним объектом. Тогда объект будет двигаться вместе с маркером.
private void OnTrackedImagesChanged(ARTrackedImagesChangedEventArgs args) { foreach (var image in args.added) { var obj = Instantiate(prefab, image.transform); obj.transform.localPosition = Vector3.zero; obj.transform.localRotation = Quaternion.identity; obj.transform.localScale = Vector3.one; } }
Если объект появляется рядом, проверьте pivot модели. У 3D-модели центр может быть не там, где вы ожидаете. Создайте пустой GameObject-контейнер, поставьте модель внутри него с нужным смещением, а уже контейнер используйте как prefab.
Если маркер распознается нестабильно, улучшите изображение: контраст, уникальные детали, отсутствие бликов, достаточный физический размер. Также проверьте, что размер reference image задан правильно. Неверный physical size приводит к неправильному масштабу и видимому смещению.