前几天老板让我丢个模型打包到 HoloLens 里看看效果。好几个月没碰 HoloLens 了,结果部署的时候遇到问题,无论如何项目部署都不成功。今天终于得空,打算把这篇记录基础设置的文章翻新一下,再写一篇文章记录现在可行的部署方法,但愿往后不需要再来翻新文章了。
当前适用版本:
文章最近更新日期:2023.03.06
新建项目,命名为:MRTK Test

注:Unity 受到 Windows 最大路径长路的影响,如果文件路径长度超过 255 个字符,可能会出现无法编译的情况。因此,建议将项目存储在尽可能靠近驱动器根目录的位置
打开 Build Settings 窗口,将项目切换到 UWP 平台并修改相应的参数

完成之后,我们需要下载混合现实工具,使用它来为项目导入开发所需的包

注:需要安装 .NET 5.0 运行时 才能运行混合显示工具(在 VS 中可以安装)
下载完成之后双击打开工具

需要略微等待一段时间,随后点击 Start 启动工具

选择自己的项目路径,随后点击 Discover Feature 进行下一步

选择以下工具包,然后点击 Get Feature 验证选择
点击 Validate 验证所选的包及导入路径是否正确

如果系统返回“未检测到任何问题”,点击“确定”,然后“导入”

选择 Approve 将所需的包导入到项目中

最后点击 Exit 关闭工具

资源导入完成之后,选择 Yes 重启 Unity,改用新的输入系统

Unity 重启后会自动弹出 MRTK 项目配置器
(如果未显示,可以通过导航栏 Mixed Reality > Toolkit > Utilities > Configire Project for MRTK 手动打开配置器)

点击,打开 Project Settings

切换到 UWP 选项卡,选择使用 OpenXR


注意:


设置完成后打开错误提示,点击 Fix All

应用 MRTK 的自动设置


导入 TextMeshPro 相关的包

完成后就可以关闭配置器了

打开 Project Settings 窗口,在 Player 界面填写组织名和项目名,项目名就是在 HoloLens 菜单中显示的名称
注:在项目名称前面添加一个下划线可以让该应用排在所有应用前面,方便开发期间进行查找

设置包名

注:包名是每个项目的唯一识别码,重复部署相同包名的应用是会覆盖安装的!!!如果需要保留多个版本,记得修改包名
为测试场景添加MRTK 工具

新建一个 Cube,调整位置和大小,并为 Cube 添加所需的脚本
这里需要注意:
点击 Play 进行测试

在 Unity 编辑器内进行模拟输入可以采取以下方式:
打开 Build Settings 窗口,将测试场景添加进去。确定平台设置没有问题后,点击 Build 进行打包

等待项目打包生成

打包完毕,这个 .sln 文件就是我们部署所需的文件

MRTK2-Unity 开发人员文档 - MRTK 2 | Microsoft Learn
混合现实工具包简介 - 设置项目并使用手势交互 - Training | Microsoft Learn
我有一个Ruby程序,它使用rubyzip压缩XML文件的目录树。gem。我的问题是文件开始变得很重,我想提高压缩级别,因为压缩时间不是问题。我在rubyzipdocumentation中找不到一种为创建的ZIP文件指定压缩级别的方法。有人知道如何更改此设置吗?是否有另一个允许指定压缩级别的Ruby库? 最佳答案 这是我通过查看rubyzip内部创建的代码。level=Zlib::BEST_COMPRESSIONZip::ZipOutputStream.open(zip_file)do|zip|Dir.glob("**/*")d
我在使用omniauth/openid时遇到了一些麻烦。在尝试进行身份验证时,我在日志中发现了这一点:OpenID::FetchingError:Errorfetchinghttps://www.google.com/accounts/o8/.well-known/host-meta?hd=profiles.google.com%2Fmy_username:undefinedmethod`io'fornil:NilClass重要的是undefinedmethodio'fornil:NilClass来自openid/fetchers.rb,在下面的代码片段中:moduleNetclass
如何在buildr项目中使用Ruby?我在很多不同的项目中使用过Ruby、JRuby、Java和Clojure。我目前正在使用我的标准Ruby开发一个模拟应用程序,我想尝试使用Clojure后端(我确实喜欢功能代码)以及JRubygui和测试套件。我还可以看到在未来的不同项目中使用Scala作为后端。我想我要为我的项目尝试一下buildr(http://buildr.apache.org/),但我注意到buildr似乎没有设置为在项目中使用JRuby代码本身!这看起来有点傻,因为该工具旨在统一通用的JVM语言并且是在ruby中构建的。除了将输出的jar包含在一个独特的、仅限ruby
我正在编写一个包含C扩展的gem。通常当我写一个gem时,我会遵循TDD的过程,我会写一个失败的规范,然后处理代码直到它通过,等等......在“ext/mygem/mygem.c”中我的C扩展和在gemspec的“扩展”中配置的有效extconf.rb,如何运行我的规范并仍然加载我的C扩展?当我更改C代码时,我需要采取哪些步骤来重新编译代码?这可能是个愚蠢的问题,但是从我的gem的开发源代码树中输入“bundleinstall”不会构建任何native扩展。当我手动运行rubyext/mygem/extconf.rb时,我确实得到了一个Makefile(在整个项目的根目录中),然后当
我正在查看instance_variable_set的文档并看到给出的示例代码是这样做的:obj.instance_variable_set(:@instnc_var,"valuefortheinstancevariable")然后允许您在类的任何实例方法中以@instnc_var的形式访问该变量。我想知道为什么在@instnc_var之前需要一个冒号:。冒号有什么作用? 最佳答案 我的第一直觉是告诉你不要使用instance_variable_set除非你真的知道你用它做什么。它本质上是一种元编程工具或绕过实例变量可见性的黑客攻击
我在我的Rails项目中使用Pow和powifygem。现在我尝试升级我的ruby版本(从1.9.3到2.0.0,我使用RVM)当我切换ruby版本、安装所有gem依赖项时,我通过运行railss并访问localhost:3000确保该应用程序正常运行以前,我通过使用pow访问http://my_app.dev来浏览我的应用程序。升级后,由于错误Bundler::RubyVersionMismatch:YourRubyversionis1.9.3,butyourGemfilespecified2.0.0,此url不起作用我尝试过的:重新创建pow应用程序重启pow服务器更新战俘
我已经像这样安装了一个新的Rails项目:$railsnewsite它执行并到达:bundleinstall但是当它似乎尝试安装依赖项时我得到了这个错误Gem::Ext::BuildError:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcheckingforlibkern/OSAtomic.h...yescreatingMakefilemake"DESTDIR="cleanmake"DESTDIR="
我想设置一个默认日期,例如实际日期,我该如何设置?还有如何在组合框中设置默认值顺便问一下,date_field_tag和date_field之间有什么区别? 最佳答案 试试这个:将默认日期作为第二个参数传递。youcorrectlysetthedefaultvalueofcomboboxasshowninyourquestion. 关于ruby-on-rails-date_field_tag,如何设置默认日期?[rails上的ruby],我们在StackOverflow上找到一个类似的问
我已经在Sinatra上创建了应用程序,它代表了一个简单的API。我想在生产和开发上进行部署。我想在部署时选择,是开发还是生产,一些方法的逻辑应该改变,这取决于部署类型。是否有任何想法,如何完成以及解决此问题的一些示例。例子:我有代码get'/api/test'doreturn"Itisdev"end但是在部署到生产环境之后我想在运行/api/test之后看到ItisPROD如何实现? 最佳答案 根据SinatraDocumentation:EnvironmentscanbesetthroughtheRACK_ENVenvironm
我们的git存储库中目前有一个Gemfile。但是,有一个gem我只在我的环境中本地使用(我的团队不使用它)。为了使用它,我必须将它添加到我们的Gemfile中,但每次我checkout到我们的master/dev主分支时,由于与跟踪的gemfile冲突,我必须删除它。我想要的是类似Gemfile.local的东西,它将继承从Gemfile导入的gems,但也允许在那里导入新的gems以供使用只有我的机器。此文件将在.gitignore中被忽略。这可能吗? 最佳答案 设置BUNDLE_GEMFILE环境变量:BUNDLE_GEMFI