Arcore - фрейм сохраняет updatedTrackables после удаления якоря - PullRequest
1 голос
/ 05 июня 2019

У меня проблема с удалением якорей со сцены.

После их удаления мой фрейм все еще сохраняет updatedTrackables и при вызове onUpdates, потому что он все еще имеет updatedTrackables, автоматически вставляет узел снова. (похоже, его никогда не удаляют).

Здесь я снимаю свою модель

private void removeAnchorNode(AnchorNode nodeToremove) {
    //Remove an anchor node
    if (nodeToremove != null) {
        arFragment.getArSceneView().getScene().removeChild(nodeToremove);
        nodeToremove.getAnchor().detach();
        nodeToremove.setParent(null);
        nodeToremove = null;
        Toast.makeText(this, "Test Delete - anchorNode removed", Toast.LENGTH_SHORT).show();
        modelsIn.remove(0);


    } else {
        Toast.makeText(this, "Test Delete - markAnchorNode was null", Toast.LENGTH_SHORT).show();
    }
}

но когда onUpdate получает вызов после этого frame.getUpdatedTrackables (AugmentedImage.class); все еще возвращает ту же коллекцию, что делает модель созданной снова.

@Override
public void onUpdate(FrameTime frameTime) {

    Frame frame = arFragment.getArSceneView().getArFrame();
    Collection<AugmentedImage> images = frame.getUpdatedTrackables(AugmentedImage.class);
        for (AugmentedImage image : images){
            if (image.getTrackingState().equals(TrackingState.TRACKING)){
                oldImages = images;
                if (image.getName().equals("fox.jpg") && !modelsIn.contains("fox")){
                    Anchor anchor = image.createAnchor(image.getCenterPose());
                    addingModel = true;
                    createModel(anchor, "fox");
                    modelsIn.add("fox");

                } else if (image.getName().equals("ghost.jpg") && !modelsIn.contains("ghost")){
                    Anchor anchor = image.createAnchor(image.getCenterPose());
                    addingModel = true;
                    createModel(anchor, "ghost");
                    modelsIn.add("ghost");

                }
            }
        }
}

Я пытался реализовать обработчики, чтобы заставить его ждать, пока он не удалит его из коллекции, но я не знаю, сколько времени это займет, и у меня есть другие модели, которые можно добавить.

Может кто-нибудь помочь, пожалуйста?

Заранее большое спасибо.

...