【问题标题】:First Person Virtual Reality Game Approaches in UnityUnity 中的第一人称虚拟现实游戏方法
【发布时间】:2014-02-26 15:18:44
【问题描述】:

我正在尝试创建一种不同的游戏。地理位置(纬度、经度)将用于放置 3d 建筑模型,并且靠近该区域的移动设备可以登录游戏并以第一人称视角在该 3d 建筑周围走动。

首先,我尝试使用以下公式将地理位置转换为 X、Y、Z 坐标:

float earthRadius = 6378.137f;
float x = earthRadius * Mathf.Cos(lat)*Mathf.Cos(lon);
float y = earthRadius * Mathf.Cos(lat)*Mathf.Sin(lon);
float z = earthRadius * Mathf.Sin(lat);

然后,我尝试找出两个 (x,y,z) 坐标之间的差异,以了解“玩家改变了他/她的位置多少”

所以,每次更新 GPS 位置时,我都会更改玩家位置。

关于那个游戏,我有很多问题(使用指南针和陀螺仪来了解玩家的确切位置,定位玩家和基于 gps 的建筑等)

对于这样的游戏,最好的方法是什么?有没有使用太多gps数据的解决方案。我的意思是,gps 并不总是足够精确。我是否可以在开始时通过 gps 数据定位建筑物和玩家,并使用陀螺仪-加速计-罗盘等在建筑物上正确行走而无需连续获取 gps 数据。

另外,我在将 GPS 位置反映到游戏中的 x-y-z 坐标时遇到了巨大的麻烦。例如,Haversine Formula 可以计算建筑物和玩家之间的距离,但我找不到定义它们位置关系的方法。我的意思是建筑物可以在玩家上方或下方10米的距离?我能做些什么?

感谢您的帮助!

【问题讨论】:

    标签: 3d gps unity3d augmented-reality


    【解决方案1】:

    我的第一个建议是不要每隔几秒 ping 一次 GPS 数据,因为这会缩短电池寿命。最多每隔几分钟左右一次。
    第二,建筑高度不应该与玩家身高相匹配吗?所以我假设高度为 0,只担心 x 和 y。
    第三,您也可以尝试使用手机的摄像头设置高度,并使用与地面的距离来获取玩家的高度。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-14
      相关资源
      最近更新 更多