C# 如何使用设备指南针在IT中放置对象或模型?

C# 如何使用设备指南针在IT中放置对象或模型?,c#,unity3d,arkit,compass-geolocation,C#,Unity3d,Arkit,Compass Geolocation,嗨,我想把模型放在特定的方向上,比如说与北极有关的方向。当我触摸屏幕时检测到飞机后,模型将被放置,但模型必须指向北极。我认为我们需要使用设备的陀螺仪找到北极,然后放置模型。如果北极与我站的位置成对角线,然后,当我放置模型时,模型将保持对角。因此,我必须增加或减少那么多角度才能使模型笔直。那么我从哪里开始呢。我会在您第一次配置ARKit会话时设置轴的对齐方式,以便它们与重力和航向对齐。这是描述的。因此,在你这样做之后: let configuration = ARWorldTrackingConf

嗨,我想把模型放在特定的方向上,比如说与北极有关的方向。当我触摸屏幕时检测到飞机后,模型将被放置,但模型必须指向北极。我认为我们需要使用设备的陀螺仪找到北极,然后放置模型。如果北极与我站的位置成对角线,然后,当我放置模型时,模型将保持对角。因此,我必须增加或减少那么多角度才能使模型笔直。那么我从哪里开始呢。

我会在您第一次配置ARKit会话时设置轴的对齐方式,以便它们与重力和航向对齐。这是描述的。因此,在你这样做之后:

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=scinvector3(x:0,y:0,z:-1)