练习 - 放置风力涡轮机资产

已完成

你的第一个任务是打开从 GitHub 下载的 Unity 项目。 然后,有两个选项可以开始本模块中的练习:

  1. 如果在未完成“在 Unity 中构建混合现实的 3D 场景”模块的情况下开始此模块,或者想要放弃创建场景之前所做的工作:

    • 在“项目”面板中,打开“资产”>“场景”>“支持场景”>“ModuleStartScenes”文件夹
    • 选择“场景”并将其拖动到“层次结构”面板。 对于本模块,请找到并选择“1_Build3DScenes”。 如果使用此场景,则它包含“Bing Maps.prefab”Prefab。
    • 根据之前“在 Unity 中构建混合现实的 3D 场景”模块中的定义配置所需的服务参数(即 Maps SDK)。
  2. 如果在完成“在 Unity 中构建混合现实的 3D 场景”模块后开始此模块,并且想要继续使用场景

    • 如果以前构建的场景尚未打开,请选择“文件”>“打开场景”
    • 浏览到保存场景的文件夹。 通常,这是根项目文件夹结构中的“资产”>“场景”文件夹。 如果遵循上一模块中的指导,则场景将称为“MainScene”。

    注意

    “资产”>“场景”>“CompletedScene”包含最终生成的配置、脚本和相关指针。 若要使用它,需要根据“在 Unity 中构建混合现实的 3D 场景”和“使用 Azure 数字孪生和 Unity 将 IoT 数据连接到 Mixed Reality”模块中的步骤配置场景参数(即,Maps SDK 和 Azure 服务)

将 Prefab 涡轮机资产放置在场景中可实现与资产的交互。

在“静态地形”上放置和配置 prefab 风力涡轮机

  1. 在“项目”窗口中打开“资产”>“艺术品”>“Prefab”文件夹。

  2. 如果场景中已有地图,请在“层次结构”面板中右键单击该资产,然后选择“删除”来删除资产。 不用担心,这只会将其从场景中删除,而不会从 Unity 项目中删除 Prefab。

  3. 将“Static Terrain.prefab”Prefab 拖到“层次结构”面板中以添加此 Prefab

  4. 将名为“Wind Turbine Static Map.prefab”的 Prefab 拖到“场景”窗口中

    Unity 项目面板的屏幕截图,其中打开了“艺术品”文件夹,并已选择 Prefab 子文件夹。

  5. 在“层次结构”窗口中的“静态地形资产”下对“风力涡轮机的静态地图”进行嵌套,使其成为“静态地形”的子元素。 请确保将其拖到子列表的底部,否则你将收到一条表示“无法重构 Prefab 实例”的消息。 如果收到此消息,请选择“取消”,并将 Prefab 放置在“静态地形”下的子列表的底部

    注意

    Unity 使用父子层次结构的概念,或使用父子层次结构对“GameObject/资产”进行分组。 对象可包含继承 GameObject 属性的其他 GameObject。 可以将 GameObject 链接在一起,以帮助移动、缩放或转换 GameObject 的集合。 移动顶级对象或父级 GameObject 时,还会移动所有子级 GameObject。

    还可以创建嵌套的父子 GameObject。 所有嵌套的对象仍是原始父 GameObject 或根 GameObject 的后代。 子 Gameobject 继承父 GameObject 的移动和旋转功能。

Unity 场景窗口的屏幕截图,其中可看到主场景正在运行和静态地形 prefab。

  1. 在风力涡轮机的“检查器”面板中,将“转换”组件中的规模设置为“(0.003, 0.003, 0.003)”,使其大约与地形规模相匹配

  2. 选择“编辑”菜单项下的“移动工具”,并选择“风力涡轮机”(如果尚未选择)。 使用屏幕上的绿色-红-蓝箭头(或中心框)将涡轮机防止在地形的中央。

    Unity 场景窗口的屏幕截图,其中主场景正在运行,并突出显示了风力涡轮机静态地图子对象和缩放工具。

  3. 在涡轮仍然被选中的情况下,选择“编辑”菜单项下的“旋转工具”,并尝试旋转涡轮机。

    Unity 场景窗口的屏幕截图,其中主场景正在运行,并突出显示了风力涡轮机静态地图子对象和旋转工具。

  4. 重复步骤 3 到 8 以在横向上放置更多涡轮机。

  5. 使用“文件”>“保存”菜单选项保存场景。

启用 Gizmos

Gizmos 是一种与场景中的 GameObject 相关联的图形覆盖,并显示在场景视图中。 移动工具等内置场景工具是 Gizmos,可以使用纹理或脚本创建自定义 Gizmos。 某些 Gizmo 仅在选择 GameObject 时绘制,而编辑器会绘制其他 Gizmo 且无需考虑选择哪个 GameObject。 需要调整场景的 Gizmo 大小,使场景不会因过大图标/对象而过载。

  1. 选择“场景”窗口顶部的“Gizmos”下拉列表,并通过滑块调整大小。

  2. 选择场景顶部的“Gizmos”按钮来打开和关闭 Gizmos。

    Unity 编辑器的屏幕截图,其中 Gizmo 已打开。

在“动态地形”上放置和配置 prefab 风力涡轮机

  1. 创建必应地图帐户:

    • 如果你尚未创建必应地图帐户,则需要创建一个。 你将使用该帐户访问 Microsoft 必应地图开发人员中心,以生成“开发人员密钥”,该密钥是一种用于向地图服务进行身份验证的代码。 为混合现实构建的应用会使用必应地图帐户连接到该地图服务。
  2. 创建开发人员密钥时,请务必选择“基本”作为密钥类型,选择“Windows 应用程序”作为“应用程序类型”。

    必应地图开发人员中心门户的屏幕截图,其中已选择“我的密钥”页,并显示“创建密钥属性”字段。

    必应地图开发人员中心门户的屏幕截图,其中已选择“我的密钥”页,并显示开发人员密钥详细信息。

  3. 在“项目”窗口中打开“资产”>“艺术品”>“Prefab”文件夹。

  4. 如果场景中已有地图,请在“层次结构”面板中右键单击该资产,然后选择“删除”来删除资产。 不用担心,这只会将其从场景中删除,而不会从 Unity 项目中删除 Prefab。

  5. 将“Bing Maps Design.prefab”Prefab 拖到“层次结构”面板中以添加此 Prefab。 如有必要,请添加必应地图。

  6. 将名为“Wind Turbine Design.prefab”的 Prefab 拖到“场景”窗口中

    Unity 项目面板的屏幕截图,其中已选择 Prefab 子文件夹。

  7. 在“层次结构”窗口中的“必应地图设计”下对“风力涡轮机设计”进行嵌套,使其成为“必应地图设计”的子元素。 请确保将其拖到子列表的底部,否则你将收到一条表示“无法重构 Prefab 实例”的消息。 如果收到此消息,请选择“取消”,并将 Prefab 放置在“必应地图设计”下的子列表的底部

    Unity 层次结构窗口的屏幕截图,其中已选择主场景并展开了必应地图设计子对象。

    Unity 场景和层次结构窗口的屏幕截图,其中可看到必应地图设计 prefab。

  8. 在风力涡轮机的“检查器”中,将“转换”组件中的规模设置为“(0.005, 0.005, 0.005)”,使其大约与地形规模相匹配。

  9. 选择“编辑”菜单项下的“移动工具”,并选择“风力涡轮机”(如果尚未选择)。 使用屏幕上的绿色-红-蓝箭头(或中心框)将涡轮机防止在地形的中央。

    Unity 层次结构窗口的屏幕截图,其中已选择主场景并展开了风力涡轮机设计子对象。还选择了“移动工具”。

  10. 在涡轮仍然被选中的情况下,选择“编辑”菜单项下的“旋转工具”,并尝试旋转涡轮机。

    Unity 层次结构窗口的屏幕截图,其中已选择主场景并展开了风力涡轮机设计子对象。还选择了“旋转工具”。

  11. 重复步骤 3 到 8 以在横向上放置更多涡轮机。

    Unity 层次结构窗口的屏幕截图,其中已选择主场景,并且多个涡轮机 prefab 已放置在动态地形上。

  12. 使用“文件”>“保存”菜单选项保存场景。