如何在Unity中设置ARCore Pose?

How to set up ARCore Pose in Unity?

最近,我的团队尝试使用 Unity 制作一个 ARCore 运动跟踪应用程序。该应用程序读取二维码并根据二维码设置我的当前位置和旋转数据。此外,该应用程序还根据二维码数据设置姿势。

但是我在参考文档中只找到了一个API获取pose的,没有设置pose。如何在 Unity 中设置 ARCore 姿势?

Pose ArCamera(Unity的ArFrame的ARCore设备的摄像头)只能获取,不能设置。

设置为可设置没有什么深刻意义,因为当ArSession启动时,3D场景的原点将被放置在ArCamera的起始位置运行。因此 3D 场景一直存在,直到 ArSession 被销毁(并且轴原点在同一位置,而会话为 运行)。

下面是一段代码,展示了如何获取 ArCamera 的 Pose:

public class Frame {

    public static Pose Pose {

        get {
            var session = LifecycleManager.Instance.NativeSession;

            if (session == null) {
                return Pose.identity;
            }
            var camera = session.FrameApi.AcquireCamera();
            Pose result = session.CameraApi.GetPose(camera);
            session.CameraApi.Release(camera);
            return result;
        }
    }
}