我想更新与每帧更新的锚点相关联的数据。如何从每个帧的ArSceneView获取帧?
答案 0 :(得分:5)
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...
}
}