SpatialAnchors не может найти AR-якорь на игровом объекте - PullRequest
1 голос
/ 03 июня 2019

Я пытаюсь реализовать свой собственный проект iOS с API пространственных привязок и приведенными примерами на их сайтах. Я очень внимательно слежу за примерами, но по какой-то причине мое приложение падает, когда я пытаюсь сохранить привязку. Xcode показывает мне «Не удалось найти привязку AR к игровому объекту», после этого возникает исключение InvalidOperationException.

Я уже попробовал отладку и обнаружил, что SessionGetArAnchorPointerForId возвращает InPtr.Zero, который интерпретируется как отсутствующий AR-якорь в данном GameObject. Ошибка возникает, когда я пытаюсь получить собственный указатель привязки игрового объекта.

public async void SaveAnchorInCloud(GameObject localAnchor)
   {
       localAnchor.AddARAnchor();//local Anchor is just a Cube instance
       Debug.Log("Added AR Anchor to local Anchor");
       CloudSpatialAnchor cloudAnchor = new CloudSpatialAnchor();
       cloudAnchor.LocalAnchor = localAnchor.GetNativeAnchorPointer(); //error occures here
       await this.cloudSession.CreateAnchorAsync(cloudAnchor);
       Debug.Log("Cloud Anchor erstellt: " + cloudAnchor.Identifier);
   }

Я уже сравнивал с примером проекта пространственных якорей, но, похоже, я не вижу никакой разницы в том, как сохраняется привязка к облаку.

1 Ответ

0 голосов
/ 05 июня 2019

@ Chris, причина, по которой вы столкнулись с этой проблемой, заключается в том, что iOS Unity создает якорь после того, как вы создали локальный якорь, вам нужно, чтобы фрейм продолжался и после него использовался.Если вы посмотрите на наш пример, пройдет время, прежде чем мы получим собственный указатель.Если вы отправите код после создания привязки, это обеспечит прохождение одного кадра, и вы не увидите этой проблемы.

...