【问题标题】:Is this a Digital Compass or Unity limitation?这是数字罗盘还是 Unity 限制?
【发布时间】:2014-05-07 01:09:44
【问题描述】:

我对移动设备的 AR 应用很感兴趣,自然希望更好地使用指南针。

我一直在努力解决的唯一问题不是指南针的抖动程度。 (角度平滑似乎很好地解决了这个问题)我的主要问题是当设备保持垂直时,指南针值开始吓坏了。导致屏幕上的指南针在整个地方翻转。我在移动应用程序开发方面没有很多经验,所以我不确定是什么导致了这个问题,是 Unity 问题还是只是数字罗盘的限制。我知道其他应用程序似乎可以在任何方向使用指南针,但这对我来说都是愚蠢的新事物。

我确实尝试过以 8 的数字移动手机。我必须玩的设备是 Nexus 4。

using UnityEngine;
using System.Collections;

public class Compass : MonoBehaviour {

// Use this for initialization
void Start () {
    Input.location.Start ();
    Input.compass.enabled = true;
}

// Update is called once per frame
void Update ()
{
    var heading = Input.compass.trueHeading;
    transform.eulerAngles = new Vector3 (0, 0, heading);
}
}

【问题讨论】:

    标签: android unity3d compass-geolocation digital-compass


    【解决方案1】:

    序言:)

    首先,我不是我将要讨论的主题的专家(很遗憾)。但是,我还是决定分享我的想法。

    理论

    这个问题可以用以下方式概括。您希望有一些连续函数,它采用 3D 向量(在您的情况下是设备方向)并返回与原始向量正交的另一个向量。理论说(参见hairy ball theorem)对于某些参数,该函数将返回零向量。如果这样的功能是指南针,则当设备垂直放置时返回零向量(如果您曾经使用过普通指南针,这很自然)。

    练习

    1. 有时您希望您的应用能够判断手机后置摄像头(后置摄像头)指向世界的哪一边。
    2. 或者甚至你想要组合方法:

      • 如果手机是平放的,请显示手机顶部指向的位置。
      • 如果手机垂直放置,请显示手机背面指向的位置。

    在这两种情况下,除了指南针之外,您还需要使用陀螺仪。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-03
      • 2022-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-13
      • 1970-01-01
      • 2011-06-06
      相关资源
      最近更新 更多