ARCore关于Cloud Anchor的使用(UnitySDK)
默认样例需要使用Google Cloud,所以梯子是必不可少的,使用的Unity版本为2019.4.13f1c1,ARCore版本为1.20
需要额外导入的Package
某些API从2019版本开始默认不在支持,需要从Window->Package Manager打开包管理器,导入以下包
- XR Legacy Input Helpers ,与获取输入设备的位姿有关,我用的2.1.4
- Multiplayer HLAPI ,多人游戏有关,我用的1.0.6
然后再导入ARCore的Unitypackage,就不再报错啦,关于Build的设置可以查看我的上一篇
Google Cloud设定
默认Cloud Anchor样例需要使用Google Cloud,进入Console,麻烦的地方在于要加各种权限设置,不然你在上面启用的API会收到很多请求(网络攻击?),以致于不能对目标应用做出响应
-
进入API概览,点击凭据,左上角创建凭据,选择API密钥,接着点击限制密钥
-
应用限制为Android应用,添加内容为安卓包的名字,以及签名证书的指纹
-
安卓包的名字:注意ARCore的脚本里面有的会在打包时改名字,所以在project settings -> player ->other settings界面里改的东西,打包出来可能会变。最稳妥的方法是先build一次,然后复制other settings里面脚本改动后的包名。这段代码其实在ExamplePreprocessBuild.cs里,有需要自行修改。
-
签名证书的指纹: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名
然后复制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,就能打包了。