Я создаю приложение AR Android, в котором я хочу, чтобы стрелка появлялась всякий раз, когда изменяется позиция пользователя.Однако я получаю NotTrackingException, когда пытаюсь создать якорь.Как я могу узнать, что ARCore обнаружил самолет, чтобы я мог добавить свой якорь?
Единственное, что я обнаружил, это это , но я мало что смогу из него выбрать.
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
}
}
status.cc:156 ArStatusErrorSpace::AR_ERROR_NOT_TRACKING: Cannot create anchors while the camera is not tracking.
2019-06-12 14:58:37.369 29685-29685/com.carmeq.carfind E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.carmeq.carfind, PID: 29685
com.google.ar.core.exceptions.NotTrackingException
at java.lang.reflect.Constructor.newInstance0(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
at com.google.ar.core.Session.throwExceptionFromArStatus(Session.java:134)
at com.google.ar.core.Session.nativeCreateAnchor(Native Method)
at com.google.ar.core.Session.createAnchor(Session.java:93)
at com.carmeq.carfind.MainActivity.onLocationChanged(MainActivity.kt:282)
at com.carmeq.carfind.MainActivity$mLocationCallback$1.onLocationResult(MainActivity.kt:223)
at com.google.android.gms.internal.zzbzq.zzq(Unknown Source:4)
at com.google.android.gms.common.api.internal.zzcj.zzb(Unknown Source:8)
at com.google.android.gms.common.api.internal.zzck.handleMessage(Unknown Source:16)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:6981)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1445)