用HoloLens 2火星漫游

熟悉了混合现实工具之后,最好巩固知识的方法就是最项目。跟着微软官方的例程做一个火星漫游车置于场景中,使用 MRTK 功能来整理场景中的对象,并使用求解器功能智能跟踪对象,梳理用到的知识点。

文章目录

    • 预备工作 :
    • 一、导入资源
      • 1、在 Unity 菜单中,依次选择“Assets”>“Import Package”>“Custom Package”
      • 2、选择` MRTK.HoloLens2.Unity.Tutorials.Assets.GettingStarted.2.5.0.1.unity `包,然后打开
      • 3、选择“All”导入包内所有资源
    • 二、创建父对象
      • 1、在“Hierachy”层次结构窗口中,右键单击某个空白处,然后选择“创建空白项”,将一个空对象添加到场景中。
      • 2、右键单击新创建的对象,选择“重命名”,然后将名称更改为“RoverExplorer”。
      • 3、选中“RoverExplorer”对象,在“检查器”窗口中,按以下所示配置“转换”组件
    • 三、添加教程预制件
      • 1、在“项目”窗口中,转到“Assets”→“MRTK.Tutorials.GettingStarted”→“Prefabs”文件夹
      • 2、从“项目”窗口中,将“Table”预制件拖到“RoverExplorer”对象上,使其成为该对象的子对象。 然后,在“检查器”窗口中,按如下所示配置“转换”组件:
      • 3、从“项目”中,将“RoverAssembly”预制件拖到“RoverExplorer”对象上,使其成为该对象的子对象。 然后,在“检查器”中,按如下所示配置“转换”组件:
    • 四、使用集合组织和布局对象
      • 1、在“Hierarchy”层次结构窗口中,右键单击“RoverExplorer”对象,然后选择“创建空白项”以将空对象添加为“RoverExplorer”对象的子对象。 将对象命名为“RoverParts”,并按如下所示配置“转换”组件:
      • 2、在“Hierarchy”层次结构窗口中,选择以下所有子对象:“RoverExplorer”→“RoverAssembly”→“RoverModel”→“Parts”。 右键单击它们,然后选择“复制”以创建每个 parts 的副本。
      • 3、在“RoverParts”对象上,粘贴选中的4个组件,使其成为该对象的子对象
      • 4、为了便于场景的处理,在“层次结构”中,选择对象旁边的“眼睛”图标以禁用“RoverAssembly”对象的场景可见性。 此选项将隐藏“场景”窗口中的对象,而不会更改其在游戏中的可见性。
      • 5、在“Hierarchy”层次结构窗口中,将所有组件重命名格式为“_Part”
      • 6、在“Hierarchy”层次结构窗口中,选择“RoverParts”对象。 然后,在“检查器”窗口中,选择“添加组件”,然后搜索并选择“GridObjectCollection”。 此选项会将“GridObjectCollection”组件添加到“RoverParts”对象。
      • 7、按如下所示配置“GridObjectCollection”组件值:
      • 8、然后选择“Update Collection”更新集合“RoverParts”子对象的位置。
    • 五、方向指示器求解器
      • 1、在“项目”窗口中,转到“资产”>“MRTK.Tutorials.GettingStarted”>“Prefab”。 将 Chevron 预制件拖到“层次结构”窗口上,并将其转换位置设置:
      • 2、将新添加的 Chevron 对象重命名为“Indicator”。 然后,在“检查器”窗口中,选择“添加组件”以添加“DirectionalIndicator”。
      • 3、按如下所示配置“DirectionalIndicator”和“SolverHandler”组件:
      • 4、点击播放按钮查看游戏模式效果,将视线从 RoverExplorer 对象移开时,Indicator 对象将出现并指向 RoverExplorer 对象
    • 六、放置求解器
      • 1、在“Hierarchy”层次结构窗口中,选择“RoverExplorer”>“RoverAssembly”对象。 然后,在Inspector检查器中,使用“添加组件”添加“SolverHandler”脚本设置为“头部”
      • 2、添加Tap to Place脚本,使用默认表面法线偏移将Surface Normal Offset设置为0,将“磁性表面”>“元素 0”下拉列表中,清除“空间感知”以外的所有选项
      • 3、在“Hierarchy”层次结构窗口中的“RoverAssembly”对象仍处于选中状态的情况下,在“检查器”窗口中查找“On Placing Started ()”事件。 选择“+”图标以添加新事件,将RoverAssembly场景加入到“On Placeing Started ()”事件的侦听器,从函数列表中,选择“TapToPlace”>float SurfaceNormalOffset”,以在触发事件时更新“SurfaceNormalOffset”属性值
      • 4、创建一个cube立方体代表地面的临时对象,并按如下所示配置“转换”组件:
      • 5、在“层次结构”中临时立方体仍处于选中状态的情况下,在“检查器”窗口中,使用“层”下拉列表更改该立方体的层设置。 只需包含“空间感知”层即可

预备工作 :

  • 配置好MRTK混合现实开发包

用HoloLens 2火星漫游_第1张图片

功能 版本号
Mixed Reality Toolkit Foundation 2.7.1
Mixed Reality OpenXR Plugin 1.0.1
  • 下载MRTK.HoloLens2.Unity.Tutorials.Assets.GettingStarted.2.5.0.1.unity

一、导入资源

1、在 Unity 菜单中,依次选择“Assets”>“Import Package”>“Custom Package”

用HoloLens 2火星漫游_第2张图片

2、选择MRTK.HoloLens2.Unity.Tutorials.Assets.GettingStarted.2.5.0.1.unity包,然后打开

用HoloLens 2火星漫游_第3张图片

3、选择“All”导入包内所有资源

用HoloLens 2火星漫游_第4张图片

二、创建父对象

1、在“Hierachy”层次结构窗口中,右键单击某个空白处,然后选择“创建空白项”,将一个空对象添加到场景中。

用HoloLens 2火星漫游_第5张图片

2、右键单击新创建的对象,选择“重命名”,然后将名称更改为“RoverExplorer”。

用HoloLens 2火星漫游_第6张图片

3、选中“RoverExplorer”对象,在“检查器”窗口中,按以下所示配置“转换”组件

  • 位置:X = 0, Y = -0.6, Z = 2
  • 旋转:X = 0, Y = 0, Z = 0
  • 缩放:X = 1,Y = 1,Z = 1
    用HoloLens 2火星漫游_第7张图片

三、添加教程预制件

1、在“项目”窗口中,转到“Assets”→“MRTK.Tutorials.GettingStarted”→“Prefabs”文件夹

用HoloLens 2火星漫游_第8张图片

2、从“项目”窗口中,将“Table”预制件拖到“RoverExplorer”对象上,使其成为该对象的子对象。 然后,在“检查器”窗口中,按如下所示配置“转换”组件:

  • 位置:X = 0, Y = -0.005, Z = 0
  • 旋转:X = 0, Y = 0, Z = 0
  • 缩放:X = 1.2,Y = 0.01,Z = 1.2
    用HoloLens 2火星漫游_第9张图片

3、从“项目”中,将“RoverAssembly”预制件拖到“RoverExplorer”对象上,使其成为该对象的子对象。 然后,在“检查器”中,按如下所示配置“转换”组件:

  • 位置:X = -0.1, Y = 0, Z = 0
  • 旋转:X = 0, Y = -135, Z = 0
  • 缩放:X = 1,Y = 1,Z = 1
    用HoloLens 2火星漫游_第10张图片

四、使用集合组织和布局对象

1、在“Hierarchy”层次结构窗口中,右键单击“RoverExplorer”对象,然后选择“创建空白项”以将空对象添加为“RoverExplorer”对象的子对象。 将对象命名为“RoverParts”,并按如下所示配置“转换”组件:

  • 位置:X = 0, Y = 0.06, Z = 0
  • 旋转:X = 0, Y = 90, Z = 0
  • 缩放:X = 1,Y = 1,Z = 1
    用HoloLens 2火星漫游_第11张图片

2、在“Hierarchy”层次结构窗口中,选择以下所有子对象:“RoverExplorer”→“RoverAssembly”→“RoverModel”→“Parts”。 右键单击它们,然后选择“复制”以创建每个 parts 的副本。

用HoloLens 2火星漫游_第12张图片

3、在“RoverParts”对象上,粘贴选中的4个组件,使其成为该对象的子对象

用HoloLens 2火星漫游_第13张图片

4、为了便于场景的处理,在“层次结构”中,选择对象旁边的“眼睛”图标以禁用“RoverAssembly”对象的场景可见性。 此选项将隐藏“场景”窗口中的对象,而不会更改其在游戏中的可见性。

用HoloLens 2火星漫游_第14张图片

5、在“Hierarchy”层次结构窗口中,将所有组件重命名格式为“_Part”

用HoloLens 2火星漫游_第15张图片

6、在“Hierarchy”层次结构窗口中,选择“RoverParts”对象。 然后,在“检查器”窗口中,选择“添加组件”,然后搜索并选择“GridObjectCollection”。 此选项会将“GridObjectCollection”组件添加到“RoverParts”对象。

用HoloLens 2火星漫游_第16张图片

7、按如下所示配置“GridObjectCollection”组件值:

组件 组件值
Sort Type Alphabetical
Surface Plane
Orient Type None
Layout Horizontal
Cell Width 0.25
Distance from parent 0.38

用HoloLens 2火星漫游_第17张图片

8、然后选择“Update Collection”更新集合“RoverParts”子对象的位置。

用HoloLens 2火星漫游_第18张图片

五、方向指示器求解器

1、在“项目”窗口中,转到“资产”>“MRTK.Tutorials.GettingStarted”>“Prefab”。 将 Chevron 预制件拖到“层次结构”窗口上,并将其转换位置设置:

X = 0、Y = 0、Z = 2

以将其放置在 RoverExplorer 对象旁边

用HoloLens 2火星漫游_第19张图片

2、将新添加的 Chevron 对象重命名为“Indicator”。 然后,在“检查器”窗口中,选择“添加组件”以添加“DirectionalIndicator”。

用HoloLens 2火星漫游_第20张图片

3、按如下所示配置“DirectionalIndicator”和“SolverHandler”组件:

  • 验证“SolverHandler”组件的“Tracked TargetType”跟踪目标类型设置为“Head”
  • 通过将“RoverExplorer”从“层次结构”拖到“无(转换)”字段,将其分配给“DirectionalIndicator”组件的“方向目标”
  • 将“View Offset”视图偏移更改为“0.2”

用HoloLens 2火星漫游_第21张图片

4、点击播放按钮查看游戏模式效果,将视线从 RoverExplorer 对象移开时,Indicator 对象将出现并指向 RoverExplorer 对象

用HoloLens 2火星漫游_第22张图片

六、放置求解器

1、在“Hierarchy”层次结构窗口中,选择“RoverExplorer”>“RoverAssembly”对象。 然后,在Inspector检查器中,使用“添加组件”添加“SolverHandler”脚本设置为“头部”

用HoloLens 2火星漫游_第23张图片

2、添加Tap to Place脚本,使用默认表面法线偏移将Surface Normal Offset设置为0,将“磁性表面”>“元素 0”下拉列表中,清除“空间感知”以外的所有选项

用HoloLens 2火星漫游_第24张图片

3、在“Hierarchy”层次结构窗口中的“RoverAssembly”对象仍处于选中状态的情况下,在“检查器”窗口中查找“On Placing Started ()”事件。 选择“+”图标以添加新事件,将RoverAssembly场景加入到“On Placeing Started ()”事件的侦听器,从函数列表中,选择“TapToPlace”>float SurfaceNormalOffset”,以在触发事件时更新“SurfaceNormalOffset”属性值

用HoloLens 2火星漫游_第25张图片

4、创建一个cube立方体代表地面的临时对象,并按如下所示配置“转换”组件:

  • 位置:X = 1.7, Y = -1.65, Z = 5
  • 旋转:X = 0, Y = 0, Z = 0
  • 缩放:X = 10, Y = 0.2, Z = 10
    用HoloLens 2火星漫游_第26张图片

5、在“层次结构”中临时立方体仍处于选中状态的情况下,在“检查器”窗口中,使用“层”下拉列表更改该立方体的层设置。 只需包含“空间感知”层即可

用HoloLens 2火星漫游_第27张图片

你可能感兴趣的:(Unity,hololens,unity,游戏引擎)