В начале упражнения у меня был создан новый объект Vector3, поэтому я могу использовать его для позиционирования 3d-моделей позже:
vector = new Vector3();
Выяснил это с помощью привязки к миру, которую ARCore распознает какпозиция телефона:
AnchorNode anchorNode = new AnchorNode();
anchorNode.setWorldPosition(new Vector3(0, 0, 0));
С установленным AnchorNode мы можем позиционировать объект в мире, зная, где он будет на самом деле.
vector.set(randomCoordinates(true), randomCoordinates(false), -.7f);
AnchorNode anchorNode = new AnchorNode();
TransformableNode node = new TransformableNode(arFragment.getTransformationSystem());
node.setRenderable(ModelRenderable);
node.setParent(anchorNode);
node.setWorldPosition(vector);
Аргументы, принятые для vector.set (), - это 3 числа с плавающей точкой, которые являются координатами x, y, z.Чтобы 3d-модели отображались перед камерой, рекомендуется, чтобы координата x находилась в диапазоне от -300 до .300, координата y была в диапазоне от -500 до .500 и координата zбыть от -7 до 1.