Все функции ARCore на Android доступны при использовании Sceneform. Наиболее распространенные случаи использования очень просты, например, работа с объектами на плоскости пола.
Для доступа к сеансу ARCore вы можете вызвать ArSceneView.getSession ()
Вы можете выполнять операции для каждого кадра, установив прослушиватель Scene, вызвав Scene.setOnUpdateListener () , затем в вызове прослушивателя ArSceneView.getArFrame ().
Например
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, которые требуют настройки сеанса, вы можете создать сеанс в своем собственном коде и вызвать ArSceneView.setupSession () или, если вы используете ArFragment, вы можете расширить ArFragment, который может реализовать getSessionConfiguration ( ) , который вызывается сразу после создания сеанса.
Просто запомните, если вы настраиваете сеанс напрямую для установки режима обновления LATEST_CAMERA_IMAGE.