Cloud Anchor,為 云錨點。
定義:通過云錨點,可以讓位于同一現實場景中的多臺設備加載同一個錨點,并渲染到各自的場景中,在該錨點上進行多人AR體驗和交互。
云錨點可以讓位于同一現實場景的設備多次進入同一個AR場景,實現AR內容的持久化。
云錨點的本質是記錄了場景空間特征信息和虛擬物體所在位置信息的序列化文件,云錨點的解析和托管通過服務器完成,為了體驗該AR效果,必須保證客戶端設備連接互聯網,可以正常訪問服務器。
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
延伸閱讀:
ARCore關于Cloud Anchor的使用(UnitySDK)
默認樣例需要使用Google Cloud,所以梯子是必不可少的,使用的Unity版本為2019.4.13f1c1,ARCore版本為1.20
需要額外導入的Package
某些API從2019版本開始默認不在支持,需要從Window->Package Manager打開包管理器,導入以下包
1、XR Legacy Input Helpers ,與獲取輸入設備的位姿有關,我用的2.1.4
2、Multiplayer HLAPI ,多人游戲有關,我用的1.0.6
然后再導入ARCore的Unitypackage,就不再報錯啦,關于Build的設置可以查看我的上一篇
Google Cloud設定
默認Cloud Anchor樣例需要使用Google Cloud,進入Console,麻煩的地方在于要加各種權限設置,不然你在上面啟用的API會收到很多請求(網絡攻擊?),以致于不能對目標應用做出響應
1、進入API概覽,點擊憑據,左上角創建憑據,選擇API密鑰,接著點擊限制密鑰
2、應用限制為Android應用,添加內容為安卓包的名字,以及簽名證書的指紋
3、安卓包的名字:注意ARCore的腳本里面有的會在打包時改名字,所以在project settings -> player ->other settings界面里改的東西,打包出來可能會變。最穩妥的方法是先build一次,然后復制other settings里面腳本改動后的包名。這段代碼其實在ExamplePreprocessBuild.cs里,有需要自行修改。
4、簽名證書的指紋:project settings -> player ->publish settings里選擇Custom Keystore,建議在一個不帶空格的路徑下創建,需要填寫兩個密碼。然后打開命令行,進入JDK的bin目錄下。我用的是Android Studio的JDK,…\Android Studio\jre\bin,總之就是有keytool.exe文件的目錄,使用指令
keytool -list -v -keystore keystore完整路徑 -alias 你設置的Alias名
5、然后復制SHA1編碼,填到Google Cloud要求的簽名證書指紋里,點擊保存
在project settings ->Google ARCore-> Android Authentication Strategyl欄里,選擇API Key,將剛才生成的API密鑰復制到里面。
Multiplayerd的設定
點擊Unity右上角的云圖標,選擇組織,創建project,然后選擇Multiplayer,接著點Go to dashboard,填每個房間允許的人數,我建議4(因為填2的時候個人遇到不能加入的問題,以及Cloud Anchor樣例里的Networkinfo的高級選項里的Max Connections里也是4),保存,可以看下左上角project名是否變成自己的項目名字,沒有下拉菜單,以及再次保存刷新一下。確認dashboard里更改好后,回到Unity里選擇Refresh Configuration,就能打包了。
延伸閱讀來源:https://blog.csdn.net/zrh2126446_163/article/details/109537789