AR (Vuforia) - GameObject между двумя ImageTarget'ами

Раздел, посвящённый Дополненной Реальности и Виртуальной Реальности

AR (Vuforia) - GameObject между двумя ImageTarget'ами

Сообщение Vanes 12 июл 2018, 10:22

Доброго времени суток!
У меня очень трудная задача, ибо мучаюсь уже не первую неделю.~x(
В чём суть: есть 2 Image Target'a, AR-камера их видит, всё ок. Есть ещё примитивный объект в виде Plane. И вот...
Как расположить этот объект точно между ними?
Расположение Image Target'ов примерно такое:
[1]__________
______?______
___________[2]
где ? - серединка, где должен быть GameObjcet.

Я уже пробовал использовать метод .WorldToScreenPoint() для вычисления расстояния между таргетами, но логично, что координаты очень отличаются от игровых метров, а способа конвертировать их я не смог найти. :(
От .ScreenToWorldPoint() тоже толку не много.
Ground Plane/Mid Air использовать тоже не вариант.

Посоветуйте, что можно предпринять. Заранее благодарен.
Vanes
UNец
 
Сообщения: 8
Зарегистрирован: 04 июл 2018, 06:03

Re: AR (Vuforia) - GameObject между двумя ImageTarget'ами

Сообщение Vanes 13 июл 2018, 09:26

Хех, не зря так долго мучался. В общем, у меня всё получилось.
Если вам надо решение - пишите сюда, а так думаю, что эта инфа никому не нужна.
Vanes
UNец
 
Сообщения: 8
Зарегистрирован: 04 июл 2018, 06:03

Re: AR (Vuforia) - GameObject между двумя ImageTarget'ами

Сообщение evgen 10 мар 2019, 14:53

Добрый день, Vanes. Столкнулся с похожей задачей. Как удалось ее решить?
evgen
UNец
 
Сообщения: 1
Зарегистрирован: 10 мар 2019, 14:28

Re: AR (Vuforia) - GameObject между двумя ImageTarget'ами

Сообщение aler 10 мар 2019, 16:00

Самый простой алгоритм:
1) Привязываем к таргетам префаб без визуального содержимого, но со скриптом
2) При OnEnable() в скрипте префаба вызываем метод на синглтон менеджере (про синглтоны тут: http://wiki.unity3d.com/index.php/Singleton) — RegisterTarget и в качестве аргумента передаем ссылку на трансформ компонент объекта привязанного к таргету
3) При OnDisable() вызывает UnregisterTarget.
4) В реализации нашего менеджера определяет HashSet<Transform> и добавляет/удаляем от туда таргеты при RegisterTarget и UnregisterTarget
5) В Update() менеджера считаем средне арифметическое: (var c = (a + b + c ... + n) / count) и ставим туда наш центральный объект
Аватара пользователя
aler
UNIверсал
 
Сообщения: 351
Зарегистрирован: 20 фев 2011, 17:41


Вернуться в AR / VR

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1