我正在处理一个旧的AR项目,并正在对其进行更新。这使用了ARCore。我能够更新所有功能,但仅在某一时刻感到困惑。
之前,我可以使用当前框架,并使用以下几行对其进行旋转和平移:
arFrame.getPose()。getTranslation(translation,0);
arFrame.getPose()。getRotationQuaternion(rotation,0);
但是现在我认为getTranslation()和getRotationQuanternion()已经移到了ARCore的Pose下。那么,如何将其用于框架?
谢谢
最佳答案
如果您的项目是使用SDK预览之一创建的,那么ARCore API可能已稍作更改。现在,当前姿势与Camera
而不是Frame
关联。您可以通过首先获取相机参考来访问姿势:
Camera camera = arFrame.getCamera();
Pose pose = camera.getPose();
pose.getTranslation(translation, 0);
pose. getRotationQuaternion(rotation, 0);
请注意,这仅在
Camera
的当前跟踪状态为TRACKING
时才有用,因此您可能需要在提取Pose
之前进行检查:https://developers.google.com/ar/reference/java/com/google/ar/core/Camera.html#getPose()