专题栏目:ARVRMR虚拟现实

Cloud Anchor | Cloud Anchor是什么意思?

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

发表评论

相关文章