如何使用设备指南针将对象或模型放置在统一 ARkit 中?

Posted

技术标签:

【中文标题】如何使用设备指南针将对象或模型放置在统一 ARkit 中?【英文标题】:How to place objects or models in unity ARkit using device compass? 【发布时间】:2018-12-04 18:03:30 【问题描述】:

嗨,我想将模型放置在特定的方向,比如说与北极有关。当我触摸屏幕时检测到平面后,模型将被放置,但模型必须指向北极。我相信我们需要带设备的陀螺仪找到北极,然后放置模型。如果北极与我站立的位置对角线,那么当我放置模型时,模型将保持对角线。所以我必须加或减那么多度数才能使模型笔直。所以我从哪里开始。

【问题讨论】:

【参考方案1】:

我会在您首次配置 ARKit 会话时设置轴的对齐方式,以便它们与重力和航向对齐。这被描述为here。所以,在你这样做之后:

let configuration = ARWorldTrackingConfiguration()
configuration.worldAlignment = ARWorldTrackingConfiguration.WorldAlignment.gravityAndHeading
scnView.session.run(configuration)

它会将轴与磁北对齐(注意,这与真正的北极略有不同)。现在,如果您将模型放置在(0,0,-1),它将显示在磁北方向 1 米处

【讨论】:

mukh....我必须像这样放置模型....model.transform.rotation = Quaternion.Euler(0,0,-1);我尝试了上面的代码,但没有工作。 对不起,我的意思是model.transform.position = SCNVector3(x: 0, y: 0, z: -1)

以上是关于如何使用设备指南针将对象或模型放置在统一 ARkit 中?的主要内容,如果未能解决你的问题,请参考以下文章

如何检测新对象何时被生成或从统一中删除以获得评分/分数?

统一3D中fbx模型的尺寸变化[重复]

如何将来自多个翻译单元的多个 const 对象放置在一个内存块中?

当原点不在网格上时,如何将网格/游戏对象放置在相机的 FoV 中间?

模型视图投影 - 如何在世界中移动对象

UML