これを参考にしていきます。
複数問題がありました。
既存のプロジェクトにUnityPackageを追加 → エラー
まずですよ、この
How to Build a Multiplayer ARKit app with Placenote SDK and Photon
を参考にしてやっていくと
この2つをReleaseからUnityPackageでダウンロードする、というのがこの動画の方法の通りやるとそうです。
で、プロジェクトにこの2つを追加する、と。
この動画では空のプロジェクトに追加してやっていたのですが、私は今まで作っていたUnityARKitPluginを使ったアプリのプロジェクトに追加しました。
で、なにも考えずに追加するとですね、エラーが起きまくりBuildもできなくなります。
なぜかと言いますと、この2つのリポジトリからUnityARKitPluginのコードもインポートしてしまうと、エラーが起きるのです。
私はBitbucketのUnityARKitPluginをダウンロードして使っているのですが、 bitbucket.org
たぶんこれとちょっとコードが違います。 で、どこかずれると連鎖して他のところもずれて、エラー。
Assets/ |-UnityARKitPlugin |-ARKitRemote/ |-CompressionHelper.cs |-Examples/ |-ARKit1.5/ |-UnityImageAnchor/ |---GenerateImageAnchor.cs |-ARKit2.0/ |-UnityAREnvironmentTexture/ |-HitCreateEnvironmentProbe.cs |-UnityARWorldMap/ |-UpdateWorldMappingStatus.cs |-WorldMapManager.cs |-UnityObjectScanner/ |-ObjectScanManager.cs |-UnityTongueAndEyes/ |-TongueDetector.cs |-UnityEyeManager.cs |-FaceTracking/ |-UnityARFaceAnchorManager.cs |-Plugins/ |-iOS/ |-UnityARKit/ |-Helpers/ |-ARKitPlaneMeshRender.cs |-UnityARAnchorManager.cs |-UnityARgeneratePlane.cs |-UnityARUtility.cs |-NativeInterface/ |-AREnvironmenrProbeAnchor.cs |-ARObjectAnchor.cs |-ARReferenceObject.cs |-ARWorldMap.cs |-UnityARSessionNativeInterface.cs |-ARReferenceObjectsSetAsset.cs |-UnityARHitTestExample_beta.cs
これらのファイル全てにエラーが起きます。
これら全てただダウンロードして使っているだけのはずなので…まあ頑張ってマージすればいけるのかもしれません…
空のプロジェクトにUnityPackageを追加 → エラー
で、次は動画の通り空のプロジェクトにUnityPackage2つを追加します。まあこれは問題なくBuildまで出来ます。
で、さあ動かしてみよう!となると、XCodeのコンソールに
Empty landmarks, probably tried to fail LibPlacenote:GetMap() FeaturesVisualizer:DrawMap()
と出続けます。アプリ側で何が起きるかと言うと、お互いの通信には成功するものの、周辺のマッピングを開始してくれません。理由はよくわかりません。マッピングを始める部分の関数が動いてない感じがします。
Githubのリポジトリをgit clone か Download Zip → 成功
じゃあどうすればええねん!と思ったいたところ、PlacenoteはユーザーサポートのためにSlackチャンネルを用意しているんです。しかもけっこうすぐ反応してくれます。
で、ここでこのエラー他にもいるだろと思い探していたところ、どうやらUnity Packageじゃなくて普通にダウンロードしたりgit cloneしたらいけるぞ、という人がいたので、それでやりました。
これをGit CloneかDownload Zipして、そこに
のUnityPackageを追加。
それで、無事いけます。
恐らくPackage化されているものはちょっと更新されていないみたいなので、それが原因かな、と。
Placenote API Key と Photon AppId 忘れるな
あと、重要ですが、Plancenoteのなにかを使う際、そしてPhotonのなにかを使う際はこの2つが必須、のはずです。
BuildしてXCode開いてBuild SucceedしてもXCodeのコンソールに
ibPlacenote: PNGetStatus: Placenote SDK not initialized
って出る場合は、Placenote API key と Photon AppId が入力されてない、と思います。私の場合はそうでした。ので、要注意。
これに沿ってPlacenote SDK のAPI Keyを取得して、
UnityでAssets/PlacenoteMultiplayerKit/Scenes/MultiplayerSampleSceneを開いて
HierarchyでPlacenoteCameraManagerを開き、
Lib Placenote (Script) のApi Keyにコピペして入力。
これに沿ってPhotonのApp Idを取得して、
UnityでAssets/Photon Unity Networking/Resources/PhotonServerSettingsを開き、
Appidというところにコピペして入力。