Hololens2开发环境配置及项目生成部署

Hololens2开发环境配置及项目生成部署

  • Hololens2开发环境配置及项目生成部署
    • 一、官方文档及推荐配置说明
      • 1.官方文档介绍
      • 2.推荐配置及配置说明
    • 二、安装步骤
      • 0.现有Visual Stuido和Unity卸载
      • 1.Windows SDK安装
      • 2.Visual Studio安装
      • 3.Unity安装
      • 4.MRTK配置
    • 三、初次环境配置
      • 1.新建Unity项目
      • 2.配置MRTK
      • 3.通过项目验证 (MR OpenXR 1.6+) 为HoloLens 2配置项目
      • 4.发布包名设置
      • 5.生成平台检查
    • 四、应用程序编译、生成和发布
      • 1.构建应用程序
      • 2.编译生成应用程序
      • 3.通过USB进行生成和部署
      • 4.通过WIFI进行生成部署
    • 五、总结

Hololens2开发环境配置及项目生成部署

如果您是第一次配置Hololens2开发环境,请严格按照如下步骤尝试,并按照推荐配置进行环境搭建,否则难以保证正确配置!!!否则难以保证正确配置!!!否则难以保证正确配置!!!(重要的事情说三遍)

一、官方文档及推荐配置说明

1.官方文档介绍

关于HoloLens2微软有如下官方文档:
[1]混合现实文档
[2]Hololens 2 基础知识:开发混合现实应用程序
通过以上文档,我们可以快速定位关于Hololens2开发环境配置及项目创建的相关说明:
[3]针对 HoloLens 的 Unity 开发
[4]Hololens2开发环境安装清单
[5]为Windows Mixed Reality配置Unity
然而,如果仅通过上述文章便可成功配置环境,本文的出现则没有必要了,在实际操作过程中,我们仍然会遇到诸多问题,尤其是在Unity构建项目时,因此,本文记录了一次从0开始成功配置Hololens2开发环境的过程,以供大家参考。

2.推荐配置及配置说明

1.操作系统:Windows10专业版(切勿根据文档使用Windows11,参见博主锋利成安装经验,在此一并表示感谢)
2.Windows SDK: 10.0.19041.0 (根据文档选择Win10SDK,因为目前Hololens2仍运行Win10系统,另外,请单独安装Windows SDK,以避免在Visual Studio中集成安装导致报错SDK找不到现象)
3.Visual Stuido: 2019 Community(与Unity版本相匹配,否则可能会在Unity中报错"Selected Visual Studio is missing required components and may not be able to build the generated project.")
4.Unity:2021.3.X LTS版本或2020.3.X LTS版本(详细信息参见文档1和文档2,2024年1月官方推荐版本)
5.MRTK工具包: 方式1下载地址、方式2下载地址及介绍地址

二、安装步骤

下面,我将从一个全新的Windows 10专业版系统中进行安装,系统安装过程跳过,如果您已是Windows 10专业版用户,且已安装Visual Studio及Unity对应版本,但仍遇到程序构建(如缺少Visual Studio组件)、项目编译(如不支持ARM64架构程序编译、编译报错无法解决)、程序运行(不是有效的Win32程序)等错误,强烈建议您卸载已有的Visual Studio和Unity版本,并严格按照如下步骤进行配置。

0.现有Visual Stuido和Unity卸载

卸载Visual Studio您可以使用Visual Studio Installer进行卸载,该程序在开始菜单中可方便找到。请将其所有组件进行卸载。如果您前期不正确卸载导致系统有诸多注册信息、无效内容残留,进而导致重装Visual Studio后运行出现报错,您可参照官方教程,使用InstallCleanup.exe对程序进行彻底删除。卸载完成后Visual Studio Installer可以保留,重新安装时会自动覆盖,但建议先自行卸载。
Visual Studio Installer卸载程序
Unity组件分为Unity Hub和Unity的x.x.x版本,系统中可安装多个版本的Unity,因此可根据需求进行卸载。但强烈建议安装最新版本Unity Hub,以在后续开发中有更利于Hololens2硬件开发的选项。卸载Unity及其组件可使用系统自带应用和功能进行卸载,请在卸载旧版本Unity Hub前先将目前不需要的版本删除掉。
Unity Hub删除不需要版本

1.Windows SDK安装

在安装Visual Studio前,建议从官网下载10.0.19041.0版本的.iso镜像,并双击WinSDKSetup.exe文件进行安装。
请默认安装在C盘,并勾选全部套件,以保证对arm架构程序开发的支持。
Window SDK安装配置
安装完成后关闭即可。

2.Visual Studio安装

从官网下载2019 Community进行安装。按照官方说明,在勾选推荐项目的同时,不要忘记勾选右侧“通用Windows平台开发”的USB设备连接性C++ (v142)通用Windows平台工具。同时,检查Windows 10 SDK (10.0.19041.0)是否已被包含。如果没有,请先避开该版本SDK并勾选其他版本SDK进行VS的安装,再重新进行步骤1安装。
VS安装配置
安装完成后,打开Visual Studio检查安装完整性,通常情况下可正常打开。如出现报错(“未能正确加载Visual Studio Common IDE package包……”),说明第0步Visual Studio卸载不干净,请执行第0步使用InstallCleanup.exe对Visual Studio 2019全部删除再重新从步骤1开始安装。

3.Unity安装

请首先安装最新版本Unity Hub,以覆盖Visual Studio自动安装的旧版本Unity Hub。
Unity Hub
安装完成后运行,您可先选择安装位置,然后点击安装编辑器,进行指定版本Unity的安装。如果未找到您需要的版本可以登录存档网站进行下载,注意要下载LTS即长期支持版本。
Unity编辑器版本安装
Unity存档网站
找到对应版本后,请勾选如下两个模块:
Unity必选安装模块
最后,完成安装。

4.MRTK配置

混合现实Toolkit (MRTK) 为微软官方驱动的项目,它提供了一系列组件和功能来加速Unity中的跨平台MR应用开发。现有的MRTK迭代到了版本3。MRTK2和MRTK3的区别可从官网了解到。其都支持Hololens 2设备。而针对于Unity 2020和2021版本,并为了更好的稳定性,建议使用MRTK2扩展包。
MRTK需要在项目中进行配置,可通过以下两种方式进行配置:
(1)Github下载工具包
请从下载地址下载如下扩展包:
Github Unity的MRTK扩展包
其中,Foundation包是必须导入的,各个包的作用参考该网站,简单总结如下:Foundation基础包是使应用程序能够跨混合现实平台利用通用功能的代码集;Extensions扩展包包括扩展Microsoft混合现实工具包功能的其他服务;Tools工具包包含一些使用Microsoft混合现实工具包增强混合现实开发体验的工具;TestUtilities测试功能包是一系列帮助器脚本使开发人员能够轻松创建播放模式测试;unitypackage是Unity包管理器,对于使用Unity 2019.4及更新版本创建的实例,可以通过Unity包管理器获取MRTK。
(2)从Microsoft下载中心下载最新版本的混合现实功能工具
参考网站说明,进行下载和使用。
混合现实功能工具
在这里,建议将两种方式的所需资源都下载下来,以备不时之需。同时,建议使用第二种方式,本文将以第二种方式进行配置说明,如想了解第一种方式的使用步骤,可参考博主无_迹的文章,并在此对其表示感谢。

三、初次环境配置

1.新建Unity项目

打开Unity Hub,创建新项目,在模板选择处选择3D或3D(URP),二者之间区别主要是渲染管线的不同。3D项目使用的是旧的管线,即Build In渲染管线;而URP使用的是新的管线。同时,3D URP对计算能力一般的移动设备支持性更好。这里根据需求进行选择。
Unity新项目选项
在右侧设置项目名和位置后,根据需求勾选启用版本管理(如勾选会自动下载PlasticSCM软件),后点击创建项目,等待工程创建。创建完成后关闭Unity编辑器。注意:在 Windows 上创建项目时,MAX_PATH 限制为 255 个字符。 Unity受到这些限制的影响;如果任何文件路径的长度超过255个字符,就可能无法编译。 因此,建议将 Unity 项目存储在尽可能靠近驱动器根目录的位置。
Unity工程创建

2.配置MRTK

在此使用第二种方式(从Microsoft下载中心下载最新版本的混合现实功能工具)对MRTK进行配置。
运行下载的MixedRealityFeatureTool程序。等待Start按钮变色后点击。
MixedRealityFeatureTool运行画面
选择项目路径后点击Discover Features,如下所示:
MixedRealityFeatureTool项目路径选择
在Discover Features页面选择如下组件或根据需求进行选择(其中,Foundation和OpenXR Plugin是必选,示例可按需选择):
Discover Features组件选择
最后,Get FeaturesImportApproveExit
导入并设置
然后再次打开项目,可能会出现一次警告,询问是否要通过重启编辑器来启用后端,选择是即可。最后出现如下界面,下方没有报错即可。
Unity编辑器
Unity编辑器

3.通过项目验证 (MR OpenXR 1.6+) 为HoloLens 2配置项目

在Unity编辑器的顶部菜单栏上,选择Mixed RealityProject Validation SettingsHololens 2 Application (UWP),如下:
项目验证菜单选择
在弹出的Project Valition界面中,注意选择Windows徽标的UWP平台,在下方展示出的问题中,选择Fix All,如果一次无法解决所有问题,请尝试多次点击Fix All进行解决。
项目验证
Fix All解决所有可修复问题后,可能仍剩如下问题,仔细阅读问题,会发现是由于项目中未导入任何场景导致的。可单击Edit默认设置。
在这里插入图片描述
对于最后一个问题,你必须添加至少一个交互配置文件,点击Edit后会跳转至如下页面。选择三个组件即可,注意组件的位置。这三个组件分别是眼睛注视交互配置文件Microsoft 手势交互配置文件Microsoft 运动控制器配置文件
交互配置页面
交互配置选项
如果“眼睛凝视交互配置文件”或其他任何配置文件旁边出现黄色三角形,请选择该三角形,然后在“OpenXR 项目验证”窗口中,单击“修复”按钮。 完成后,继续回到“OpenXR 项目验证”窗口进行添加即可。
最后,出现如下界面,并确保如下选项被成功勾选且无报错,则表明配置完成。
配置完成页面

4.发布包名设置

Project Setting中,选中Player页面,在下方的Publishing Settings,设置Package Name即可。
包名设置

5.生成平台检查

区分于大多数博主的项目创建伊始便切换至UWP平台,如果您严格按照上述操作进行,Unity会在为HoloLens 2配置项目过程中自动切换至UWP,您可以检查FileBuild Settings,项目已经设置为UWP平台工程。
生成平台设置
注意上方配置,区别于Unity 2020,2021已经没有Target Device这一选项,参见Unity论坛,因此对于警告“The local machine does not support running projects compiled for the ARM64 architecture……”,即本地计算机不支持编译为ARM64架构的程序的运行警告⚠️可忽略,在Visual Studio编译后指定设备运行即可。到此为止,Hololens 2的开发环境便已配置成功。
如果有其余警告和报错,请检查Visual Studio安装组件的完整性。

四、应用程序编译、生成和发布

1.构建应用程序

FileBuild Settings中,选择Add Open scenes将所有场景添加入项目,后点击Build按钮,选择对应的构建文件夹,生成工程文件。
生成项目

2.编译生成应用程序

在构建文件夹中,选择sln文件,打开Visual Studio。
构建文件夹
在Visual Studio中,修改编译模式为Release,架构为ARM64。如果需要通过WIFI进行生成部署,请选择远程计算机,如果要通过USB进行生成和部署,请选择设备
VS编译模式
为保证应用程序的顺利开发,请在Hololens 2的设置中打开面向开发人员选项。
面向开发人员选项
下面,如果要通过USB进行生成和部署,请参考步骤3,要通过WIFI进行生成部署,请参考步骤4。

3.通过USB进行生成和部署

点击▶设备按钮,进行项目生成和部署。项目会自动编译,并尝试在Hololens2上部署,部署过程中会出现下图所示PIN窗口,可在Hololens2中的面向开发人员页面点击配对找到PIN。
PIN
至此,您可以在Hololens2中运行您的程序。

4.通过WIFI进行生成部署

选择项目->属性,进入项目属性页,选择调试,将HoloLens 2的IP地址填写至页面,如下图:
HoloLens2IP地址填写
至此,其余步骤便和步骤3一致。

五、总结

以上为HoloLens2开发环境配置及项目生成部署的全部步骤,欢迎大家批评指正!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/425875.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C++进阶(三) 二叉搜索树

一、二叉搜索树 1.1 二叉搜索树概念 二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树: 若它的左子树不为空,则左子树上所有节点的值都小于根节点的值若它的右子树不为空,则右子树上所有节点的值都大于根节…

Postman上传文件的操作方法

前言 调用某个接口,测试上传文件功能。一时间不知如何上传文件,本文做个操作记录,期望与你有益。 步骤一、设置Headers key:Content-Type value:multipart/form-data 步骤二、设置Body 选择form-data key:file下拉框选择file类型value&…

2024年【道路运输企业主要负责人】考试报名及道路运输企业主要负责人模拟考试

题库来源:安全生产模拟考试一点通公众号小程序 道路运输企业主要负责人考试报名根据新道路运输企业主要负责人考试大纲要求,安全生产模拟考试一点通将道路运输企业主要负责人模拟考试试题进行汇编,组成一套道路运输企业主要负责人全真模拟考…

Mysql学习之各种锁

锁 事务的隔离性由锁来实现 MySQL并发事务访问相同记录 并发事务访问相同记录的情况大致可以分为3种: 读-读的情况 读-读情况,即并发事务相继读取相同的记录。读取操作本身不会对记录由有任何的影响,并不会引起什么问题,所以允许…

【SQL注入】宽字节注入原理讲解

一、addslasehes()转义函数 addslashes() 是 PHP 中用于转义字符串中的特殊字符的函数之一。它会在指定的预定义字符(单引号、双引号、反斜线和 NUL 字符)前面添加反斜杠,以防止这些字符被误解为代码注入或其他意外操作。 1. 用法 string …

对程序、进程、线程、并发、并行、高并发概念的讲解

一、概述 程序、进程、线程、并发、并行和高并发是计算机科学领域中非常重要的概念。 了解进程、线程、并发和并行的概念,可以更好地利用计算机的多核处理器和并行计算能力,提高计算机性能。 了解进程和线程为操作系统中的资源管理提供了基础&#xff…

Springboot+vue的考勤管理系统(有报告)。Javaee项目,springboot vue前后端分离项目。

演示视频: Springbootvue的考勤管理系统(有报告)。Javaee项目,springboot vue前后端分离项目。 项目介绍: 采用M(model)V(view)C(controller)三层…

【MySQL】表的约束——空属性、默认值、列描述、zerofill、主键、自增长、唯一键、外键

文章目录 MySQL表的约束1. 空属性2. 默认值3. 列描述4. zerofill5. 主键6. 自增长7. 唯一键8. 外键 MySQL 表的约束 MySQL中的表的约束是一种规则,用于限制或保护表中数据的完整性和合法性。约束可以确保数据在插入、更新或删除时满足特定的条件,从而维护…

笨办法学 Python3 第五版(预览)(一)

原文:Learn Python the Hard Way, 5th Edition (Early Release) 译者:飞龙 协议:CC BY-NC-SA 4.0 模块 1:Python 入门 练习 0:准备工作 这个练习没有代码。这只是你完成的练习,让你的计算机运行 Python。…

Web开发学习-HTML

第一天 固定结构 如何注释&#xff1a;vs code中使用ctrl/可以达到注释这一行的效果&#xff0c;同时再次按下ctrl/&#xff0c;可以取消注释。 HTML标签的结构 例如&#xff1a;<strong>字体加粗</strong>这个就是双标签&#xff0c;<br>换行标签&#xff…

Unity 常用的4种灯光、制作镜子、灯光的调用修改数值、

创建灯光时&#xff0c;一般用4种&#xff1a;定向光、点光源、聚光、区域光、 定向光&#xff1a;太阳 点光源&#xff1a;灯泡 聚光灯&#xff1a;手电筒 区域光&#xff1a;烘焙-贴图 灯光选择已烘焙 需要先选择被烘焙的物体&#xff0c;然后再选择Contribute GI 等待进…

记录一次自己的服务器迁移过程

记录一次自己的服务器迁移过程 记录一次自己的服务器迁移过程 前言目前项目的部署方式开始迁移 提前准备设置安全组开始初始化安装 docker尝试部署数据库迁移 结尾一些问题 为什么中间没有配置 https?关于数据库备份 前言 最近阿里云发动了史上最大力度价格战&#xff0c…

hive中spark SQL做算子引擎,PG作为MetaDatabase

简介 hive架构原理 1.客户端可以采用jdbc的方式访问hive 2.客户端将编写好的HQL语句提交&#xff0c;经过SQL解析器&#xff0c;编译器&#xff0c;优化器&#xff0c;执行器执行任务。hive的存算都依赖于hadoop框架&#xff0c;所依赖的真实数据存放在hdfs中&#xff0c;解析…

详解 JavaScript 中的数组

详解 JavaScript 中的数组 创建数组 注&#xff1a;在JS中的数组不要求元素的类型&#xff0c;元素类型可以一样&#xff0c;也可以不一样 1.使用 new 关键字创建 let array new Array()2.使用字面量方式创建(常用) let array1 [1,2,3,"4"]获取数组元素 使用下…

用numpy搭建自己的神经网络

搭建之前的基础与思考 构建模型的基本思想&#xff1a; 构建深度学习的过程&#xff1a;产生idea&#xff0c;将idea转化成code&#xff0c;最后进行experiment&#xff0c;之后根据结果修改idea&#xff0c;继续idea–>code–>experiment的循环&#xff0c;直到最终训练…

Excel 按奇数偶数列处理数据

目录 一. 需求背景1.1 获取偶数列的数据1.2 奇偶列数据互换 二. 解决方式2.1 为列添加奇偶辅助列2.2 通过公式将奇偶列互换 一. 需求背景 1.1 获取偶数列的数据 ⏹ 最近在整理歌单&#xff0c;发现部分歌曲没有歌词&#xff0c;于是打算自己制作一份。 从网上找到了歌词&…

Vue前端的工作需求

加油&#xff0c;新时代打工人&#xff01; 需求 实现带树形结构的表格&#xff0c;父数据显示新增下级&#xff0c;和父子都显示编辑。 <template><div><el-table:data"tableData"style"width: 100%; margin-bottom: 20px"row-key"i…

YOLOv9独家原创改进|使用可改变核卷积AKConv改进RepNCSPELAN4

专栏介绍&#xff1a;YOLOv9改进系列 | 包含深度学习最新创新&#xff0c;主力高效涨点&#xff01;&#xff01;&#xff01; 一、改进点介绍 AKConv是一种具有任意数量的参数和任意采样形状的可变卷积核&#xff0c;对不规则特征有更好的提取效果。 RepNCSPELAN4是YOLOv9中的…

ArcGIS Runtime For Android开发之符号化和图层渲染

一、用Symbol对要素进行符号化 首先我们看一下Symbol 接口关系&#xff1a; 1、SimpleFillSymbol 他是用来进行简单的Graphic面要素填充符号化的&#xff0c;它可以设置要素的填充颜色&#xff0c;边线颜色、线宽&#xff0c;其用法如下&#xff1a; Polygon polygonnew Po…

python中的类与对象(3)

目录 一. 类的多继承 二. 类的封装 三. 类的多态 四. 类与对象综合练习&#xff1a;校园管理系统 一. 类的多继承 在&#xff08;2&#xff09;第四节中我们介绍了什么是类的继承&#xff0c;在子类的括号里面写入要继承的父类名。上一节我们只在括号内写了一个父类名&…