我想更新与每帧更新的 anchor 关联的数据。如何从 ArSceneView 获取每一帧的帧?

最佳答案

ArSceneView 在绘制场景之前更新 ARCore Frame 对象。您可以通过从使用 getArFrame() 注册的方法调用 setOnUpdateListener() 来访问框架。

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    this.sceneView = (ArSceneView) findViewById(R.id.scene_view);
    sceneView.getScene().setOnUpdateListener((this::onSceneUpdate));
}

private void onSceneUpdate(FrameTime updatedTime) {
    Frame frame = sceneView.getArFrame();
    Collection<Anchor> updatedAnchors = frame.getUpdatedAnchors();
    for (Anchor anchor : updatedAnchors) {
        // Handle updated anchors...
    }
}

关于arcore - 如何使用 Sceneform 对每一帧进行处理?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50242002/

10-10 16:06