首页 > 解决方案 > 如何在 ARCore 中获取最新的 Detected Plane?

问题描述

我想要实现的是将模型放在用户面前而不用敲击平面。为此,我试图从该onUpdate方法中获取最新的 Plane,然后从中plane.centerPose取出。

val plane = frame.getUpdatedTrackables(Point::class.java).last();
universalAnchorNode = AnchorNode(arFragment?.arSceneView?.session?.createAnchor(plane.centerPose))

我面临的问题是,大多数时候它仍然给我一个以前的飞机,而不是给我一个更新的姿势。

我想要的是在onUpdate方法中获得更新的姿势。

标签: javaandroidaugmented-realityarcoresceneform

解决方案


获取当前帧。

arSceneView.scene.addOnUpdateListener {
    frame = arSceneView.arFrame ?: return@addOnUpdateListener
}

然后你可以提取飞机

val plane = frame.getUpdatedTrackables(Plane::class.java)

推荐阅读