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/