【问题标题】:Mapbox Ar does not work in all directionsMapbox Ar 并非在所有方向都有效
【发布时间】:2019-08-25 11:06:52
【问题描述】:

我通过 Mapbox 在 Unity 中构建了一个增强现实应用程序。另外,我通过 Mapbox 对一些点进行了地理定位。积分似乎在应用程序中的 AR 中。但是,我意识到,当应用程序初始化时,手机的方向很重要。当电话跟随北方时,它才显示出真相。

我在互联网上进行了一些搜索,但找不到任何确切的信息。

我更喜欢独立于电话指导来处理应用程序。 有人可以解释一下吗?或者有什么解决办法吗?

【问题讨论】:

    标签: unity3d mapbox augmented-reality


    【解决方案1】:

    您可能正在寻找的是Input.compass → Compass 和具体的

    Input.compass.magneticHeading

    相对于磁北极的度数。 (只读)

    此属性中的值始终相对于当前方向的屏幕顶部进行测量。磁北的方位与真正的地理北不完全相同 - 要获得准确的方位,请使用 trueHeading 属性。

    public class Example : MonoBehaviour
    {
        void Start()
        {
            Input.location.Start();
        }
    
        void Update()
        {
            // Orient an object to point to magnetic north.
            transform.rotation = Quaternion.Euler(0, -Input.compass.magneticHeading, 0);
        }
    }
    

    Input.compass.trueHeading

    相对于地理北极的度数。 (只读)

    此属性中的值始终相对于当前方向的屏幕顶部进行测量。 请注意,如果您希望此属性包含有效值,您还必须通过调用 Input.location.Start() 来启用位置更新。(只读)

    API 中的使用示例

    public class Example : MonoBehaviour
    {
        void Start()
        {
            Input.location.Start();
        }
    
        void Update()
        {
            // Orient an object to point northward.
            transform.rotation = Quaternion.Euler(0, -Input.compass.trueHeading, 0);
        }
    }
    

    【讨论】:

    • 我正在使用 Mapbox 的LocationProvider。我现在检查了它,它已经在使用Input.compass.trueHeading。我知道我们无法自动执行此操作。它始终以其当前方向位于屏幕顶部。因此,用户必须将屏幕向北旋转。对吗?
    • 不,您还可以存储北方和智能手机旋转之间的偏移量,然后使用此偏移量相对于相机方向定位对象
    • 哦,我刚刚在MapBox 的文档中找到它:你使用Rotate With Location Provider 组件吗?
    猜你喜欢
    • 1970-01-01
    • 2022-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-17
    • 1970-01-01
    相关资源
    最近更新 更多