托管和解析云锚点必须授权您的应用调用 ARCore Cloud Anchor API。授权包括使用API密钥授权和无密钥授权,区别是:
使用API密钥授权托管和解析最多24小时(1天)的云锚点。
使用无密钥授权来托管和解析 TTL 介于1到365天之间的 Cloud Anchors。
一、创建项目工程和安装ARCore Extensions软件包
详见:
https://blog.csdn.net/weixin_40239288/article/details/125328974
二、unity设置
1.unity项目- Edit > Project Settings > XR > ARCore Extensions:
2.Android Authentiation Strategy,下拉菜单,选择Keyless。并在Optional Features勾选Cloud Anchors和Geospatial两个选项。
3.生成证书和打包:
a. Edit - Project Settings > Player > Publishing Settings,点击Keystore Manager:
b.点击Create New-Anywhere,弹出保存提示框,输入名称,点击保存:
c.依次输入相关内容,点击Add Key完成创建:
c.创建成功:
d.点击yes
e. 签名打包的APK
4. SHA-1 指纹签名密钥
打开命令提示符-进入证书所在目录,把未签名的APK放到当前目录,更名orient.apk,命令行输入:
jarsigner -verbose -keystore user.keystore -signedjar sign.apk orient.apk 212
user.keystore为证书,如:F:\unity\sign\user.keystore
orient.apk为未签名APK,如:F:\unity\sign\orient.apk
sign.apk为签名后的APK
212为证书创建时设置的别名,执行后生成签名的apk:
5.查看SHA-1 指纹,命令行输入:
keytool -list -printcert -jarfile sign.apk
复制SHA1内容即可。
三、设置google cloud项目
使用视觉定位系统(VPS),需要关联一个 Google Cloud 项目, 并在该Google Cloud 项目中启用ARCore API,新建Google Cloud项目:
1.访问:https://console.cloud.google.com/projectcreate,新建项目。
2.点击创建后新建成功:
3.侧边栏菜单选择API和服务-库:
4.输入ARCore API并搜索
5.点击选择ARCore API(ARCore Cloud API 已不再使用)
6.点击启用,即可启用地理空间和云锚点
7.进入如下页面
四、google cloud项目设置
应用需要授权后,才能调用Geospatial API,授权有无密钥授权和API密钥授权,推荐使用无密钥授权。
实现无密钥授权步骤:
1.创建建 OAuth 客户端 ID(未配置同意屏幕)
a.google cloud项目中,选择侧边栏菜单-API和服务-凭据
b.点击创建凭据-OAuth客户端ID:
c.点击配置同意屏幕
d.选择-外部,点击创建按钮:
e.填写应用名称邮箱,创建
f.第二步直接点击保存并继续
g.添加测试用户,点击继续:
h.完成
5.创建建 OAuth 客户端 ID(已配置同意屏幕)
a.google cloud项目中,选择侧边栏菜单-API和服务-凭据
b.点击创建凭据-OAuth客户端ID:
c.应用类型-Android:
d.输入数据,名称填写app名称,软件包名称填写app的包名,SHA1证书指纹填写上面签名中复制的SHA1,点击创建:
e.创建成功
Google项目创建完成。
五、unity启用Geospatial API
1.Assets下选择 ARCoreExtensionsConfig 脚本对象,然后在 Inspector 窗口中,下拉 Geospatial Mode 选择 Enabled。
ARCoreExtensionsConfig的创建:
《ARFoundation从零开始3-创建ARFoundation项目》:
https://blog.csdn.net/weixin_40239288/article/details/125328974
六、常见问题
1. 使用ARCore Extension API例子程序:Window-Package Manager-ARCore Extensions-Samples,点击Import按钮导入要使用的示例代码。
2.添加Scene,打包:
2.错误CS0234:命名空间“UnityEditor”中不存在类型或命名空间名称“iOS”:
解决:安装UnitySetup-iOS-Support-for-Editor-2020.2.6f1。
七、参考文献
1. Unity api:
Unity - Manual: Unity User Manual 2021.3 (LTS)
2. Geospatial和cloud anchor 文档:
使用 ARCore Geospatial API 打造全球规模的沉浸式 AR 体验 | Google Developers
https://developers.google.cn/ar/develop/cloud-anchors?hl=zh-cn
3.Google AR:
https://github.com/google-ar