常见问题 (FAQ)
问题:我看到在visionOS模拟器上运行的结果与在硬件上运行的结果不同
- 请注意,在模拟器中运行时,一些硬件特定功能不可用-最明显的是AR数据。这可能表示visionOS模拟器中的模拟结果可能与Vision Pro头戴式耳机上的模拟结果不同。查看Apple关于在模拟器中运行应用程序的指南以了解更多信息。
- 请注意,Unity仍然在构建与XCode上的Metal API相同的功能,所以可能会看到来自Metal API验证层的警告。为了解决这个问题,可以通过XCode的scheme菜单关闭Metal API Validation Layer。
问题:如何将现有的移动项目引入PolySpatial XR平台?
请查看getting started page上的项目转换指南,了解有关启用和使用PolySpatial的信息。
问题:如何将现有XR项目引入PolySpatial XR平台?
您可以在getting started page上查看项目转换指南
问题:进入播放模式后在我的项目中看不到任何视觉或执行差异!
确保您将visionOS作为活动构建目标,并在Project Settings > XR Plugin-in Management > Apple visionOS中将Mixed Reality选择为当前App Mode。
问题:运行时间已启用,但没有显示任何内容!
- 确保场景中有Volume Camera。原点位于场景中间的无界Volume Camera是一个很好的起点。 如果不存在,则将创建一个默认的对象,该对象将包括场景中每个对象的边界,但这可能会导致体积摄像机边界内的场景中的对象太小而无法看到。
- 验证编辑器预览运行时是否正常。播放时打开层次结构中的“DontDestroyOnLoad”场景,并检查是否存在“PolySpatial Root”对象。如果没有该对象,请确保启用了PolySpatial运行时间。如果启用后没有任何显示,请联系Unity团队。
- 当使用Unbounded摄像机时,平台负责选择(0,0,0)原点,并且可能会选择意料之外的位置。仔细查看(字面意思)看看内容是否在您认为应该在的地方。重新启动设备也有助于重置其会话空间。每次启动时,确保处于一致的位置(例如,坐在桌子上,面朝前)会很有帮助。
问题:蒙皮网格没有动画!
在Animator组件上,确保Culling Mode设置为Always Animate。
- 如果导入了模型,请导航到该模型的Import Settings。在Rig选项卡下,确保未勾选Optimize Game Objects。有些型号甚至可能没有此设置;在这种情况下,不做改动。
- 某些模型可能包含与RealityKit不兼容的骨架(层次结构中的一组骨骼)。骨架必须具备以下属性才能实现兼容:
- 一组骨骼在变换层次中必须有一个共同的祖先GameObject。
- 骨架中的每个骨骼必须能够向上遍历变换层次结构,而不传递任何非骨骼GameObject。
- 一般来说,不支持在骨架中某处具有非骨骼GameObject的骨架(通常用于骨骼上的缩放或偏移)。
问题:我在构建ScriptableSingleton时看到一个错误
- 该错误属于AR Foundation软件包,属于良性错误。您可以忽略此错误。
问题:我在日志中看到与XXXX Tracker(网格跟踪器、Sprite跟踪器等)相关的NULL ref或其他问题*。
- 在PolySpatial设置中找到Runtime flags选项,并选择导致问题的跟踪器。这将禁止在PolySpatial中对这些类型的对象进行更改。请向团队举报该问题,以便我们了解并修复跟踪器类型。
问题:我的TextMeshPro文本显示为粉红色的字形块或我的TextMeshPro文本模糊不清**
- 找到 visionOS 软件包(visionOS/Resources/Shaders)中包含的 shader graph,然后右击 -> Reimport。
问题:在visionOS模拟器中,我的内容太暗**
- 在visionOS模拟器中,尝试使用Device -> Erase All Content and Settings和/或切换到不同的环境(例如,博物馆(日间)与客厅(日间))。
问题:应该面向摄像机的对象 (transform.LookAt) 不起作用
- 在visionOS上的头部姿势跟踪是通过ARKit提供的,并且仅当您的应用程序打开ImmersiveSpace时才可用。在Unity中,这是通过在“Unbounded”模式下激活“VolumeCamera”来实现的。您还需要场景中的“ARSession”组件来启动ARKit会话并启用头部姿势跟踪。当满足这些要求时,您可以使用“TrackedPoseDriver”来更新基于头部姿势的任何变换,并使用该对象作为“lookAt”目标。
问题:透明对象、Sprite或画布元素闪烁且排序不一致
- 透明对象、Sprite和画布元素可能会出现闪烁,尤其是在混合使用时。您可以通过使用VisionOSSortingGroup组件显式设置排序顺序来防止这种情况发生。
问题:我已经构建了一个XCode项目,但没有选择在模拟器上运行
- 检查“Project Settings > Other > Target SDK”设置为“Simulator SDK”
- 您只能使用Apple Silicon的Unity编辑器创建VisionOS版本。检查Unity的标题栏not包含"<Rosetta>"。如果是,请使用Unity Hub下载Apple Silicon版本。
- 确保已安装VisionOS模拟器。在XCode中,打开“Window > Devices and Simulators”,然后选择“Simulators”选项卡。如果没有列出任何内容,请使用+按钮添加一个选项。如果“Device Type”菜单没有Apple Vision Pro选项,则您可能使用的是非测试版XCode。目前只有测试版支持VisionOS模拟器。
常见错误
错误:xcrun: error: unable to find utility "actool", not a developer tool or in PATH
- 确保您已安装XCode测试版
- 打开XCode,导航到
Settings > Locations > Command Line Tools
,并确保选中XCode测试版。您可能需要取消选择并重新选择XCode版本才能使更改生效。
错误:Failed to find a suitable device for the type ...
- 这种情况有时发生在XCode升级之后。重启电脑通常可以解决这一问题。
Play to Device主机
I'm having trouble connecting to the Play to Device Host
- 确保主机和移动设备连接到同一局域网。如果他们不在同一个局域网,可以在Play To Device编辑器窗口中使用Advanced Settings添加方向连接。
- 请确保防火墙设置不会阻止连接。如果被防火墙阻止,您可能必须使用适合您操作系统的工具暂时对其禁用。
I'm observing lag, or my editor seems to hang.
在Unity编辑器中,尝试在“Project Settings > Player > Resolution and Presentation”下启用“Run in Background”。虽然此设置目前未在visionOS平台下公开,但所有生成目标都共享此设置。您可以在独立构建目标选项卡下启用该设置。
My app doesn't seem to receive any input once connected to the host.
如果您的应用程序没有接收到来自Play To Device主机的输入(尤其是在使用visionOS Simulator时),您可能需要更改输入设置。PolySpatial软件包在其软件包管理器示例中包含一个预设输入资源,但要检查的重要设置有:
Background Behavior
:Ignore FocusPlay Mode Input Behavior
:All Device Input Always Goes To Game View