1

空間アンカー API と Web サイトで提供されている例を使用して、独自の iOS プロジェクトを実装しようとしています。例に非常に厳密に従っていますが、アンカーを保存しようとすると、何らかの理由でアプリがクラッシュします。Xcode に「ゲームオブジェクトに AR アンカーが見つかりませんでした」と表示された後、InvalidOperationException 例外が発生します。

既にデバッグを試みたところ、SessionGetArAnchorPointerForId が InPtr.Zero を返すことがわかりました。これは、指定されたゲームオブジェクトで AR アンカーが欠落していると解釈されます。ゲームオブジェクトのネイティブ アンカー ポインターを取得しようとすると、エラーが発生します。

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);
   }

既に空間アンカーのサンプル プロジェクトと比較しましたが、クラウド アンカーの保存方法に違いはないようです。

4

2 に答える 2

0

@Chris、この問題が発生した理由は、フレームを継続して使用するために必要なローカルアンカーを作成した後、iOS Unity でアンカーを作成するためです。サンプルを見ると、ネイティブ ポインターを取得する前に時間が経過しています。アンカーを作成した後にコードをディスパッチすると、1 フレームが通過することが保証され、この問題は発生しません。

于 2019-06-05T05:32:39.987 に答える