8th Wall XR Положение камеры не меняется

Я использую 8th Wall XR версии 1.0.9.3 и думаю, что есть проблема с классом XRController. Класс XRCameraController не может получить положение реальной камеры, используя метод XRController.GetCameraPosition(). При каждом обновлении метод восстанавливает ноль для всех переменных положения.

Я попытался отследить источник проблемы, а затем обнаружил, что внутри XRNativeBridge.cs под Android JNI есть такой код:

r.ptr.cameraExtrinsicPositionX = jr.Call<float>("cameraExtrinsicPositionX");
r.ptr.cameraExtrinsicPositionY = jr.Call<float>("cameraExtrinsicPositionY");
r.ptr.cameraExtrinsicPositionZ = jr.Call<float>("cameraExtrinsicPositionZ");;

который должен брать внешние данные о положении камеры из собственного вызова. Затем я попытался декомпилировать com.the8thwall.reality.app.xr.android.XRAndroid.java файл из предоставленного исполняемого файла jar, из которого jr.Call берет переменные, чтобы узнать, есть ли что-нибудь об этом, но не повезло. Все вызовы Java, как jr.Call<float>("cameraExtrinsicPositionX") возвращаем ноль.

1 ответ

Решение

В настоящее время 6DoF отслеживание поддерживается для устройств с поддержкой Tango и ARKit. Для всех других телефонов на сегодняшний день это возврат к 3DoF отслеживанию и фиксированным поверхностям, что объясняет, почему переменные положения равны нулю.

Для получения дополнительной информации о функциях, поддерживаемых для платформ, для которых вы разрабатываете, см. https://docs.8thwall.com/xr/unity/

Другие вопросы по тегам