要为XR
配置Unity
项目,请执行以下步骤:
- 打开
Project Settings
窗口(菜单:Edit > Project Settings
),然后选择XR Plug-in Management
。 - 如果尚未安装该软件包,请单击
Install XR Plug-in Management
。 您也可以从Package Manager
窗口中安装它。 - 安装完成后,选择一个
Plug-in Provider
提供程序以为相应的构建目标启用它。 这样做:- 选择一个构建目标(例如
Android
)。 - 选中要用于该构建目标的每个插件左侧的复选框。
- 选择一个构建目标(例如
- 插件加载后,它会显示在
XR
插件管理下的左侧导航栏中。 单击该插件为每个构建目标配置其设置。 - 要设置跟踪,请从
Unity
的主菜单中转到GameObject> XR>Add XR Rig
。
注意:
- 选择XR插件提供程序将为相应的构建目标启用该提供程序。 如果该插件包不存在,Unity会自动安装它。
- 禁用插件不会自动卸载现有软件包。 从 Package Manager.
中卸载提供程序插件。 - 有关第三方插件的列表,请参阅 Getting Started with VR Development。
在XR插件框架中设置跟踪
在新的XR插件框架中已删除了在2019.3之前的Unity版本中使用的隐式摄像机跟踪。 隐式跟踪仅适用于简单的仅使用HMD的应用程序,但是与控制器和其他交互相关时,隐式跟踪却不那么直观。
要确保使用XR插件框架正确配置了XR跟踪,请按照以下步骤操作。
从新Scene(场景)开始
如果您从新Scene开始,则以下说明适用,或来自满足以下条件的Scene:
- 场景中只有一台摄像机,并且该摄像机被标记为主摄像机。
- 场景中的相机位于层次结构的根部。
在Unity的主菜单中,转到 GameObject > XR > Add XR Rig
。 这将尝试将新Scene转换为正确支持XR插件框架的Scene。
现在,如果您在控制台日志中没有看到任何错误,则现在应该可以在Scene中单击Play,并查看在XR插件管理包中配置的设备的“摄像机”轨迹。
如果Unity无法正确迁移您的场景,则控制台日志中会显示错误。 请按照下面的从现有Scene(场景)开始
部分中的说明进行操作。
从现有Scene(场景)开始
与迁移空场景相比,从现有场景进行迁移还有其他步骤。 因此,取决于场景的配置方式,会有不同的选项。 总体目标是使场景跟踪的方式与迁移到XR插件框架之前的方式相同。
识别场景类型
在场景中找到标记为“主摄像机”的摄像机。 Unity使用此相机渲染到HMD或其他主要设备。
如果主摄影机是GameObject:
- 位于项目层次结构的根部,请按照迁移简单场景的步骤进行操作。
- 不在项目层次结构的根本位置,请按照迁移复杂场景的步骤进行操作。
迁移一个简单的场景
要迁移简单的场景,请执行以下步骤。
1. 创建XR Rig Prefab的实例。
迁移以前位于“场景”层次结构根目录中的摄影机,可以通过实例化XR Rig Prefab将现有摄影机交换到XR Rig。
该软件包包含的内容。
您可以在Packages / XR Legacy Input Helpers / Prefabs文件夹中找到此Prefab。 将Prefab拖动到Scene层次结构中以创建它的新实例。
2. 移动XR装备以匹配相机的位置。
现在您有了XR Rig Prefab的实例,您需要配置XR Rig GameObject,以便在应用程序启动时生成的Camera位置正确。
更改XR Rig GameObject的位置和旋转,使其与当前“主摄影机”的位置匹配。 如果您要对主摄像机应用比例转换,请确保也将此比例应用于XR Rig GameObject。 如果您缩放XR装备,强烈建议在所有三个轴上使用统一的缩放比例。
3. 如有必要,请复制位置更改。
如果未迁移场景中的主摄像机位于地板上方(其Y分量> 0.0f),则需要复制此位置更改。 您可以通过几种不同的方式来执行此操作,具体取决于更改要复制的原始位置。
3.1-模拟用户身高的抬升
如果将先前的主摄像机抬高到地板上方以模拟用户的身高,并且该应用程序使用设备跟踪原点(有时称为“固定”跟踪模式),则“摄像机偏移”组件将执行此附加抬升操作。 否则,请参阅下一节。
要在“设备跟踪原点”模式下使用应用程序时,将摄影机配置为具有垂直方向的提升,请在XR装备GameObject的“摄影机偏移”组件上设置以下选项:
Option | Value |
---|---|
Requested Tracking Mode | Device |
Camera Y Offset | Set this option to the height at which the existing Main Camera is raised to simulate user height. |
配置完这些选项后,将XR Rig GameObject的Y位置更改为您在应用程序中通常认为的“地板”(通常为0.0f)。 相机偏移组件会根据需要添加任何其他的提升。
3.2-抬起表示摄像机位置
如果未迁移的场景使用“地板跟踪原点”(历史上称为“缩放比例”跟踪模式),并且“主摄像机”的位置代表了用户的起始点,而没有包括他们的身高(也就是说,摄像机实际上在逻辑上“ floor”),请按照以下步骤正确迁移场景:
- 移动XR装备,使其与Unity相机在世界空间中的当前位置和旋转方向匹配。
- 如果应用程序使用地板跟踪原点,请将“摄像机偏移”组件上的“请求的跟踪模式”设置为“地板”。这样可以确保摄像机具有正确的垂直偏移。
- 如果应用程序不使用楼层跟踪原点,请将“摄像机偏移”组件上的“请求的跟踪模式”设置为“默认”。无论应用程序以哪种设备跟踪模式启动,这都将应用正确的行为。
- 如果您以前使用其他组件垂直移动“相机”并处理“设备”和“地板”追踪原点之间的差异,则可能需要禁用或修改此组件,以使不同组件不会多次错误地移动“相机”。
接下来,从XR Rig实例中删除“ Main Camera GameObject”,并将现有的“ Main Camera GameObject”作为“ Camera Offset GameObject”的父对象。
确保主摄影机游戏对象的位置和旋转度均为0,0,0。 始终更改XR Rig GameObject的位置,而不是更改相机的位置。 另外,请确保从GameObjects或组件到您的主摄像机的任何链接仍然正确。
5.为XR配置您的项目
请参阅上面的为XR配置Unity项目。
6.按播放
现在,您的场景已成功迁移,请按Play,并确保相机的起始位置与迁移到XR插件框架之前的位置相同。 如果不是,请参阅下面的“疑难解答”部分。
迁移复杂场景
如果您当前的场景正在使用来自旧版VR系统的隐式摄像机跟踪,并且“主摄像机”是GameObject层次结构的一部分,请按照以下步骤将旧版VR跟踪系统迁移到XR插件框架。
隐式摄影机更新将每帧两次更新主摄影机游戏对象的局部变换,这使主摄影机游戏对象相对于其所在的层次结构的位置,比例和旋转进行移动。
在这种情况下,您有两个选择来迁移场景:
- 保留现有层次结构,并添加组件以启用对当前层次结构的跟踪
- 迁移现有层次结构以使用XR Rig结构。
如果您的场景具有依赖于该层次结构的功能,通常建议保留现有的层次结构。 如果您具有相对简单的配置,则可以直接迁移到XR Rig。
留在原地
该方法只需对现有场景层次进行最少的修改即可在Unity中进行跟踪。 它涉及到在场景中的主摄像机中添加“跟踪姿势”驱动程序。 这样可以确保需要您当前GameObject层次结构的任何其他功能继续像以前一样起作用。
1.找到您的主相机,并向其中添加一个跟踪姿势驱动程序
在场景中找到主摄像机。
使用与XR Rig的主相机相同的设置来添加Tracked Pose驱动程序。 下面的屏幕截图显示了这些设置:
跟踪姿势驱动程序设置
对场景中的所有主摄像机执行此操作。 如果需要跟踪场景中的其他设备,请参见“跟踪姿势驱动程序”设置,以获取适用于您的用例的正确选项。
2.为XR配置您的项目
查看 Configuring your Unity Project for XR 部分.
3.按播放
现在,您的场景已成功迁移,请按Play,并确保相机的开始位置与迁移到XR插件框架之前的位置相同。 如果不是,请参阅下面的“疑难解答”部分。
迁移到XR钻机
由于正在使用的层次结构数量众多,因此Unity无法提供具体步骤来迁移当前的场景层次结构以使用XR装备。 请参阅“传统输入助手”软件包文档中的“ XR钻机说明”部分,以了解XR钻机打算代表的内容。 这将允许您将现有层次结构映射到XR Rig中的概念。
要将场景配置为使用XR管理,请参见上面的“为XR配置Unity项目”部分。
如果仍然存在问题,请参阅下面的“疑难解答”部分。
故障排除
Issue | Possible causes |
---|---|
Camera is too high in the Scene | Is the Camera Offset component’s Requested Tracking Mode set correctly? Is the Camera Y Offset set too high? |