为什么我的AR车型会自动旋转?

时间:2017-10-23 07:36:32

标签: c# xamarin scenekit augmented-reality arkit

我正在尝试使用Xamarin构建应用程序,同时将ARKit与Scenekit结合使用。 ARSession配置为跟踪水平平面,以及何时找到这样的平面。我想在这样的飞机上画一张自定义图表。物体看起来很好并且位于正确的位置,但它仍然保持旋转状态。当我在测试时绕着物体走动时,它的方向改变为面向我,这是不应该做的。这种情况发生的时间不到一秒钟,然后又变回原来的方向。

在我的委托中找到飞机时触发此方法:

public override void DidAddNode(ISCNSceneRenderer renderer, SCNNode node, ARAnchor anchor) {

    if (anchor.GetType() != typeof(ARPlaneAnchor) || ChartIsPlaced) {
        return;
    }

    var planeAnchor = (ARPlaneAnchor) anchor;
    var chart = new ARChart(createTestData());
    chart = (ARChart) chart.DrawOnPlane(node);
    renderer.PointOfView.Light = chart.AddLightSource();

    node.AddChildNode(chart);
    ChartIsPlaced = true;
}

每当ARKit注册足够的点以“看到”锚定平面时,将添加3D图表作为此平面节点的子节点。

我见过的几乎所有使用Xcode制作的iOS样本都没有这个问题,但我似乎无法将其正确地转换为C#。

我怀疑这与SceneKit处理节点及其子节点的方式有关。也许ARAnchor节点发生了变化,我的对象(也就是锚节点的子节点)也发生了变化。

为什么旋转?如何控制这种行为?

0 个答案:

没有答案