visionOS 工程配置¶
向Apple Inc.申请企业API许可¶
注意
请根据 Building spatial experiences for business apps with enterprise APIs for visionOS 向Apple Inc.申请企业应用相机API的entitlement并获取license 。(注意,这个License是Apple公司分发的文件,与EasyAR的License不是一个事物)。
请注意,申请Enterprise entitlement时使用的Bundle ID应与创建EasyAR Sense License Key时填写的一致。
环境要求¶
visionOS 2.0及以上
对应visionOS版本的Xcode16.0及以上并安装visionOS simulator
推荐的Unity版本: 6000.0.23+
Unity visionOS App Mode¶
Unity的visionOS有4种App模式,其中
- EasyAR支持的App Mode有,
Metal Rendering with Compositor Services
RealityKit with PolySpatial
Hybrid - Switch Between Metal and RealityKit
- EasyAR不支持的App Mode有,
Windowed - 2D Window
这些模式的差别和使用差异请阅读Unity官方文档。
安装Unity插件¶
需要安装的Unity插件:
Unity 6+¶
- App Mode = Metal:
com.unity.xr.visionos (2.0.4+)
- App Mode = RealityKit/Hybrid:
com.unity.xr.visionos (2.0.4+)
com.unity.polyspatial (2.0.4+)
com.unity.polyspatial.visionos (2.0.4+)
com.unity.polyspatial.xr (2.0.4+)
上面所有插件的版本号需一致
Unity 2023+¶
部分早期发布的unity 2023.x并不支持构建visionOS包,请使用Unity 6。
Unity 2022.3.19+¶
- App Mode = Metal:
com.unity.xr.visionos (1.2.3)
- App Mode = RealityKit/Hybrid:
com.unity.xr.visionos (1.2.3)
com.unity.polyspatial (1.2.3)
com.unity.polyspatial.visionos (1.2.3)
com.unity.polyspatial.xr (1.2.3)
上面所有插件的版本号需一致
注意
请勿使用1.3.x版本,该版本经验证不能使用。
构建平台配置¶
切换并确认Build Platform为 visionOS :
Input System 配置¶
Edit > Project Settings > Player
设置
Active Input Handling为Input System Package(New)
此后Unity会要求重启工程,点击 Apply 使改动生效,
XR Plug-in Management 配置¶
Edit > Project Settings > XR Plug-in Management
Plug-in Providers 勾选
Apple visionOS
Edit > Project Settings > XR Plug-in Management > Apple visionOS
根据需要选择EasyAR支持的
App Mode
添加
World Sensing Usage Description设置
Metal Immersion Style设置为Mixed设置
Reality Kit Immersion Style设置为Mixed勾选
IL2CPP Large Exe Workaround
PolySpatial 配置¶
备注
App模式为RealityKit或Hybrid时需要配置。
Edit > Project Settings > PolySpatial
设置
Default Volume Camera Window Config为Default Unbounded Configuration勾选
Auto-Create Volume Camera
如果 Default Volume Camera Window Config 需要使用其它配置,确保其 Mode 为 Unbounded
删除场景中的 Volume Camera (如果存在)
如果场景中存在
Volume Camera,请先删除(不推荐)若因为一些原因需要添加一个 唯一 的自定义
Volume Camera,请将其World Transform设为identity,并确保其Volume Camera Window Configuration的Mode设置为Unbounded,请阅读Unity官方文档,并在完全清楚其含义和用途的前提下使用。不支持
World Transform数值不是identity的Volume Camera
注意
请务必确认场景中 不存在 Volume Camera 或已按上述描述设置。
TextMesh Pro 配置¶
备注
App模式为RealityKit或Hybrid时需要配置。
Edit > ProjectSettings > TextMesh Pro
点击
Import TMP Essentials
备注
目前RealityKit with PolySpatial仅支持TextMesh Pro文字
Bundle ID¶
设置visionOS应用的Bundle ID, 注意Bundle ID要与创建License Key时填写的一致,并且与向苹果申请的Enterprise entitlement中的Bundle ID一致 。在Player Settings面板设置如下。
如果License Key异常(比如Bundle ID不匹配),在打包应用时将会看到如下弹出提示
这时如果选择继续打包,打包出的应用将无法正常使用,请根据窗体提示仔细检查并修复问题后再继续打包。
在一些特殊情况,如果你使用EasyAR的接口手动初始化,不使用Setttings文件中的License Key,你可以选择 Continue and don't warn me again ,或者关闭 Verify License When Build 选项,这将关闭打包时的检查。
权限配置¶
你可以检查 EasyAR 所使用的权限。请确保你所使用的功能所使用的权限是打开的。这些选项用于检查 Usage Description 是否填写,并在必要时让编译失败。如果你需要在XCode中而不是Unity中设置 Usage Description ,可以关闭这些选项。
Camera Device: 取消选中。VisionOS的相机权限并不通过这个接口获取,不用设置,也不用开启检查。Video Recording: 取消选中。VisionOS不支持VideoRecorder。Mega: 使用 MegaTrackerFrameFilter 建议开启的权限。开启这个选项将会使用设备的定位权限(只有当com.easyar.mega package存在时才起作用)。
如果打开了 Mega 选项,且com.easyar.mega package存在,需要添加 Location Usage Description ,否则构建将失败。
备注
Unity目前仅在IOS的PlayerSettings中有Location Usage Description字段,在IOS的PlayerSettings中设置的Location字段在VisionOS中也能生效
相机权限配置(XCode工程)¶
通过Unity生成XCode工程,然后在 Signing & Capabilities 页面中 点击 +Capability ,添加 Main Camera Access
备注
若之前没有向Apple成功申请相应的enterprise entitlement,这一项不会显示
将申请得到的Enterprise.license文件复制到XCode工程目录,并添加至XCode工程中
EIF默认文件读取配置(XCode工程)¶
若需要录制EIF并通过Vision Pro的文件应用投送到电脑或其他设备,需要在 Info.plist 中增加以下字段:
添加
LSSupportsOpeningDocumentsInPlace并将值设置为true添加
UIFileSharingEnabled并将值设置为true
备注
添加之后显示的文字与添加的字符串不同,这是正常的。