Android 如何在ArCore中获取跟踪状态
我正在构建一个AR Android应用程序,每当用户的位置发生变化时,我都想在其中生成一个箭头。但是,当我尝试创建锚点时,会出现NotTrackingException。我怎么知道ARCore探测到了一架飞机,这样我就可以添加我的锚了 我唯一能找到的是,但我从中得到的不多Android 如何在ArCore中获取跟踪状态,android,kotlin,arcore,sceneform,Android,Kotlin,Arcore,Sceneform,我正在构建一个AR Android应用程序,每当用户的位置发生变化时,我都想在其中生成一个箭头。但是,当我尝试创建锚点时,会出现NotTrackingException。我怎么知道ARCore探测到了一架飞机,这样我就可以添加我的锚了 我唯一能找到的是,但我从中得到的不多 fun onLocationChanged(location: Location) { val session = arFragment.arSceneView.session var arrowViewRen
fun onLocationChanged(location: Location) {
val session = arFragment.arSceneView.session
var arrowViewRenderable:ViewRenderable
val pos = floatArrayOf(0f,0f,-1f)
val rotation = floatArrayOf(0f,0f,0f,1f)
val anchor = session!!.createAnchor(Pose(pos,rotation))
val anchorNode = AnchorNode(anchor)
anchorNode.setParent(arFragment.arSceneView.scene)
ViewRenderable.builder()
.setView(this, R.layout.arrow)
.setSizer(DpToMetersViewSizer(400 ))
.build()
.thenAccept { renderable -> arrowViewRenderable = renderable
anchorNode.renderable = arrowViewRenderable
}
}
可以从当前帧的摄影机检索TrackingState
val frame = session.update()
if (frame.camera.trackingState == TrackingState.tracking) {
// place anchor
}
val frame = session.update()
if (frame.camera.trackingState == TrackingState.tracking) {
// place anchor
}