Android 如何监控我在ARCore和Sceneform中的当前位置?

Android 如何监控我在ARCore和Sceneform中的当前位置?,android,augmented-reality,arcore,sceneform,Android,Augmented Reality,Arcore,Sceneform,在使用ARCore和Sceneform的应用程序中,我需要以某种方式监视我的(设备,真的)在ARCore空间中的移动 因此,我想从所选点(Anchor/AnchorNode)通过当前位置绘制一条光线,或者计算从所选点到此处的距离,并在移动过程中进行更新。我有一些想法,如何计算或绘制,但如何获得更新?在方法中,您可以通过调用和获取对象 此摄像机是跟踪查看设备位置的节点对象,并具有包含所需位置和旋转信息的姿势对象。首先设置更新侦听器 fragment.getArSceneView().getScen

在使用ARCore和Sceneform的应用程序中,我需要以某种方式监视我的(设备,真的)在ARCore空间中的移动

因此,我想从所选点(
Anchor
/
AnchorNode
)通过当前位置绘制一条光线,或者计算从所选点到此处的距离,并在移动过程中进行更新。我有一些想法,如何计算或绘制,但如何获得更新?

在方法中,您可以通过调用和获取对象


摄像机
是跟踪查看设备位置的
节点
对象,并具有包含所需位置和旋转信息的
姿势
对象。

首先设置更新侦听器

fragment.getArSceneView().getScene().addOnUpdateListener(frameTime -> {
        fragment.onUpdate(frameTime);
        onUpdate();
    });
在OnUpdate()中调用Camera.getDisplayOrientedPose()函数

当你在相机周围移动时,你的姿势会不断更新

fragment.getArSceneView().getScene().addOnUpdateListener(frameTime -> {
        fragment.onUpdate(frameTime);
        onUpdate();
    });
Frame frame = fragment.getArSceneView().getArFrame();

    Camera camera = frame.getCamera();

    if (camera.getTrackingState() == TrackingState.TRACKING){
        Pose CameraPose = camera.getDisplayOrientedPose();
    }