统一模型目标介绍

本指南将引导您完成导入和使用的过程模型目标团结一致。从数据库中导入您的模型目标,并开始设计和开发AR体验以增强您的产品。

通过尝试我们的Vuforia岩芯样品也可在Unity Asset Store中找到。这些示例包括两个场景,一个用于模型目标,另一个用于高级模型目标。使用模型目标生成器(MTG)创建您自己的模型目标,并将其数据库作为.单元包装进入统一

与Vuforia引擎和模型目标建立统一

请参见Unity中Vuforia引擎入门如果您不熟悉Unity中的Vuforia Engine。我们建议使用网络摄像头或设备来测试跟踪质量和数字内容。

在Unity中设置Vuforia引擎

  1. 创建一个新的Unity项目。有关支持的Unity Editor版本,请参见支持的版本。
  2. 将Vuforia引擎包添加到Unity项目中,如中所述这篇文章.
  3. 将默认主摄像头替换为ARCamer(阿卡姆)来自的游戏对象->Vuforia引擎->AR摄像头.
  4. 获取项目的许可证密钥。请参阅Vuforia许可证管理器有关如何获取Vuforia引擎许可证密钥的指南。

    注:默认情况下启用设备跟踪。建议使用设备跟踪具有模型目标。

将模型目标添加到场景中

如果您还没有这样做,请使用模型目标生成器。您将导入.单元包装从MTG工具生成的文件。或者,可以通过创建一个建模目标游戏对象导入数据库之前。 

  1. 选择游戏对象->Vuforia引擎->模型目标。如果未检测到模型目标数据库,则可以添加默认模型目标数据库(由NASA维京登陆车组成,具有两个引导视图(前视图和后视图)。

  2. 如果生成了自己的模型目标,请通过选择导入数据库资产 ->导入包->自定义包…并选择.单元包装文件。

提示:您可以验证是否已从Vuforia配置的概述中添加了数据库(Cmd+Shift+V/Ctrl+Shift+V)。

提示: 禁用从数据库提取模型如果你只需要追踪目标。

配置模型目标

模型目标游戏对象需要数据库模型目标从分配给它的检查员面板。场景中将显示表示模型目标的预览模型。此模型的目的是帮助您相对于物理对象本身的特定部分放置增强-它仅在Unity Editor的场景视图中可见,并且不会在运行时显示。通过禁用启用可视化在模型目标预览组件中。

  1. 在模型目标的Inspector窗口中,验证实际长度物理宽度,实际身高字段与真实对象的尺寸匹配,单位为米。已知物理对象和模型目标之间的大小差异会影响跟踪质量。

  2. 将立方体或其他内容作为子对象添加到模型目标游戏对象。

    提示:您可以通过Vuforia Core Samples包导入Viking Lander或玩具车的内容。

  3. 使用测试模型目标《团结》中的Vuforia游戏模式按Unity中的Play按钮。或者,将应用程序部署到您的设备。

跟踪模型目标的配置

模型目标将具有优化跟踪但是,您可以将此模式更改为Inspector中的任何可用选项。只能在此处或使用API设置模式AR_CONTROLLER。请参阅优化模型目标跟踪有关模型目标的跟踪模式的详细信息。

网格和目标表示

The 模型目标行为组件可以选择在运行时添加和使用其模型目标的网格进行碰撞检测和遮挡。这增加了直接从模型目标使用网格的好处,而不是将网格复制到应用程序中。以下两个参数不会在模型目标上渲染或显示任何内容。

  • 设置参数运行时遮挡网格添加遮挡其他游戏对象的运行时网格。
  • 设置参数运行时网格碰撞器使用网格碰撞器添加运行时网格,以进行光线投射和碰撞检测。

添加运行时网格

按钮添加运行时网格创建一个新的游戏对象作为模型目标的子对象。它有运行时网格渲染行为组件,该组件在运行时实例化模型目标的网格,并保持几何体可用于更新和更改。

它需要一个显示材质用于渲染跟踪的模型目标的网格。该组件可以用于其他游戏对象,但您需要提供源行为还有。

此功能扩展到运行时,您可以使用API CreateRuntimeMeshRenderingBehaviour将网格表示添加到也可以在运行时创建的ModelTargetBehaviour。

添加目标表示

按钮添加目标表示将静态网格作为新游戏对象的子对象添加到模型目标。在编辑器中编写时,它对于设置零件的着色器和高亮显示很有用。在运行时,当检测到模型目标时,将呈现目标表示。它还遮挡其他游戏对象。

注: 虚拟场景比例不会重新缩放运行时网格或目标表示。在将值应用于虚拟场景比例因子.

为模型目标配置辅助视图

模型目标由一个或多个引导视图生成,用于从不同角度初始化对象跟踪;参见导向视图了解详细信息。在Unity中,您可以从模型目标行为模型目标的组件(如果它有一个或多个导向视图)。

注:高级模型目标不需要指南视图。请参见高级模型目标数据库的配置有关更多信息,请参阅下面的部分。

  1. 在中选择GuideView2D和GuideView3D指南视图模式。顾名思义,导向视图可以是2D纹理或3D模型。
  2. 从下拉列表中选择指南视图指南视图。在运行时,使用指南视图2D模式启用时,将在屏幕上呈现对象的轮廓表示–这是指南视图。当检测到匹配对象时,它会消失。
    • 覆盖检测位置创建一个名为检测位置控制在世界空间中替换“Guide View”的检测位置。重新定位检测位置控制借助场景中摄影机组件的预览窗口更新导向视图、其跟踪启动以及运行时渲染的预览图像。
    • 自定义二维辅助线视图图像用于将导向视图替换为纹理2D格式的自定义图像。同样自定义3D GuideView模型允许您使用自定义三维模型作为导向视图。

指南视图模式

The 指南视图模式定义如何呈现导向视图。 

  • 无指南视图不会在屏幕上呈现指南视图。使用此模式添加您自己的应用程序逻辑以显示目标检测。
  • 指南视图2D渲染预先配置的指南视图。
  • 指南视图3D用于HoloLens或Magic Leap应用程序,用于渲染物体和检测位置的3D模型表示。

在导向视图之间手动切换

如果模型目标具有多个指南视图,则可以在运行时在自定义C#脚本中使用设置活动指南视图索引():

//要激活的索引必须介于0和mModelTarget之间。获取指南视图()-1var guideViewIndexToActivate=0;mModelTarget。设置活动指南视图索引(指南视图索引激活);/*或者,将指南视图设置为按字符串名称激活*/字符串guideViewNameToActivate=“前”;mModelTarget。设置活动指南视图名称(要激活的指南视图名称);/*然后,您应该设置引导视图显示模式*/mModelTarget。GuideViewMode=模型目标行为。指南视图显示模式。GuideView2D;

高级模型目标数据库的配置

高级模型目标使用相同的模型目标游戏对象。通过模型目标生成器训练高级模型目标数据库。有关更多信息,请参阅这些文章:模型目标生成器用户指南高级模型目标数据库..

除了指南视图外,高级模型目标的设置与标准模型目标类似。

  1. 转到游戏对象->Vuforia引擎->模型目标->模型目标创建建模目标游戏对象在你的场景中。在场景层次窗口中选择新创建的游戏对象。
  2. 检查员窗口中,选择数据库下拉菜单并选择导入的Advanced Model Target数据库。

  3. 如果在一个数据库中使用多个模型,则可以在模型目标。 在向模型添加内容时在模型之间切换。请记住,所有内容都必须ModelTarget游戏对象的子对象。

注释:与标准模型目标不同,高级模型目标会自动检测,而无需首先在屏幕上显示引导视图。

最好向用户显示一些一般指导,以识别可跟踪的对象。下面的代码显示了如何做到这一点。请参阅上的其他最佳实践高级视图第页。

if(mModelTargetBehaviour.TargetStatus.StatusInfo==StatusInfo.INITIALIZING){//场景中的所有模型目标都正在初始化,请在此处显示自定义UI}

配置建模目标游戏对象并像处理其他模型目标一样向其添加内容。