Я искал решение этой проблемы, и они, похоже, не являются чем-то отличным от нескольких вещей, которые я пробовал, к сожалению, не сработало.
Я следую этому уроку : https://www.youtube.com/watch?v=2xkZUPUbgoM
Мне удалось заставить 3D-модели рисовать, однако, когда я вызываю 3 из них, приложение начинает зависать, а затем вылетает. Я не уверен, что это размер модели, счетчик поли или что-то еще, что, возможно, использует всю память на устройстве.
Это код, который я использую в данный момент для создания / рендеринга 3D-моделей:
private void createModel(AnchorNode anchorNode, int currentlySelected) {
if (currentlySelected == 1){
TransformableNode transformableNode = new TransformableNode(arFragment.getTransformationSystem());
transformableNode.getScaleController().setMinScale(0.05f);
transformableNode.getScaleController().setMaxScale(0.1f);
transformableNode.setParent(anchorNode);
transformableNode.setRenderable(modelRenderable);
transformableNode.select();
}
}
arFragment.setOnTapArPlaneListener((hitResult, plane, motionEvent) -> {
if (currentlySelected == 1)
{
Anchor anchor = hitResult.createAnchor();
AnchorNode anchorNode = new AnchorNode(anchor);
anchorNode.setParent(arFragment.getArSceneView().getScene());
createModel(anchorNode, currentlySelected);
}
});
Спасибо за чтение и заранее помощь.
Я только что подумал об оптимизации памяти. Можно ли переместить этот код в фоновый поток до тех пор, пока 3D-модель / представление не будет нарисована?