我正在尝试使用指南针值将一个虚拟对象放置在距设备2公里(北向)的位置,但是我无法在空间中获得固定点。
当我绕Y轴旋转设备时,对象正在滑动。 例如,当我向左转时,该对象实际上正朝相反的方向旋转,它将从左出现在屏幕上,而将消失在右边。
我正在使用C#Xamarin Android(华为P20 Pro),并且我已经尝试过谷歌向我展示的关于北极北向问题的许多建议。
我觉得我的轮换工作中缺少一些东西, 但我只是找不到...
我回过头来进行了最简单的测试:
if (camera.TrackingState == TrackingState.Tracking)
{
// Calculate difference angle from magnetic north
Quaternion qr = Quaternion.CreateFromAxisAngle(Vector3.UnitY, (float) toRadian(angleFromNorth));
// Clear anchor
mAnchors.Clear();
// Position relative to phone only with compass value rotation
Vector3 posObject = Vector3.Transform(new Vector3(0, 0, -2), qr);
Pose pos = Pose.MakeTranslation(posObject.X, 0, posObject.Z);
// Add anchor
Anchor anchor = mSession.CreateAnchor(pos);
mAnchors.Add(anchor);
}