Есть ли способ добавить обычный ARAnchor на обнаруженное изображение? - PullRequest
0 голосов
/ 22 мая 2019

Я пытаюсь поместить 3D-объект поверх обнаруженного изображения, и это сработало.Но когда я переместил камеру вокруг изображения, объект не остался в центре изображения.Есть ли способ добавить регулярную привязку в центре изображения, чтобы помочь мне зафиксировать 3D-объект в правильном положении?Следующий код - это то, что я пробовал, но это не сработало.

- (void)renderer:(id<SCNSceneRenderer>)renderer didAddNode:(SCNNode *)node forAnchor:(ARAnchor *)anchor 
{
    if ([anchor isKindOfClass:[ARImageAnchor class]]) {
        ARAnchor *newAnchor = [[ARAnchor alloc] initWithTransform:anchor.transform];
        [self.sceneView.session addAnchor:newAnchor];
    }
}

Я обнаружил изображение и наложил на него плоскость, он выглядит правильно по центру

Но когда я перемещаю камеру в другое положение, она не располагается в центре изображения

1 Ответ

1 голос
/ 22 мая 2019

Нет необходимости создавать новый якорь, потому что он уже предоставлен ARKit.Вы должны добавить свой 3D-контент в узел, предоставленный этим методом.В соответствии с документацией renderer:didAddNode:forAnchor::

Вы можете предоставить визуальный контент для привязки, прикрепив геометрию (или другие функции SceneKit) к этому узлу или добавив дочерние узлы.

Итак, в этом методе:

- (void)renderer:(id<SCNSceneRenderer>)renderer didAddNode:(SCNNode *)node forAnchor:(ARAnchor *)anchor 
{
     [node addChildNode: your3DObjectNode];
}

Тогда он должен оставаться в центре вашего изображения.

...