问题标签 [hololens]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
388 浏览

visual-c++ - 使用 DirectX 更新帧缓冲区纹理数据

我正在尝试在 VC++ 中使用 VS 2015 中的 Direct X 11 模板。我正在使用: D3D11_MAPPED_SUBRESOURCE资源和 MAP 和 UNMAP 来更新纹理。现在我的项目中有一个单独的文件,我正在读取像素并需要将其上传到此纹理。

我正在使用一个结构来保存纹理数据:

想知道如何使用来自单独文件的这个结构将纹理数据上传到基于 Direct X 的 Spinning Cube 文件中。

0 投票
2 回答
1911 浏览

c# - 将自定义 dll 集成到 HoloLens 项目中

我有一个带有源代码的自定义库,可以成功编译并生成 .dll 文件。

问题:考虑到以下错误,将此 dll 包含在 HoloLens 项目中的最佳方法是什么?

我的方法

独立库的project.json文件如下:

或者我也有机会将其添加为 NuGet 包,具体取决于:
- Microsoft.NETCore.UniversalWindowsPlatform (>= 5.2.2)
- Newtonsoft.Json (>= 9.0.1)
- Microsoft.EntityFrameworkCore.Tools (>= 1.0 .0-preview2-final)
- Microsoft.EntityFrameworkCore.Sqlite (>= 1.0.1)

然后我需要将此库包含在 Unity 为 Hololens 制作的另一个 VS2015 解决方案中。Unity 自动构建的解决方案由 3 个项目组成:1)Assembly-CSharp包含 HoloToolkit 文件夹,2)Assembly-CSharp firstpass和 3) Origami

截屏

我从HoloToolkit for Unity文件夹中获取了一个脚本,并将其应用于GameObject. 当一个事件被触发时——并且它成功发生——我想调用这个自定义库提供的一些函数来从同一个脚本中处理它,比如说GazeManager.cs。项目project.json1) 如下

我尝试了两种方式:

  • GazeManager.cs我添加using MyLibrary了代码并将其添加为 ReferenceManager 中的引用。该库被正确识别,但随后仅声明一个变量,例如public MyLibrary objectInMyLibrary使从正确编译的程序切换到具有以下错误的程序:

命令 ""C:\Users\Antonino\Documents\UnityToVS2015Projects\HoloAcademy101 - Origami\Origami\App\Unity\Tools\AssemblyConverter.exe" -platform=uap -lock="C:\Users\lakeb\Documents\UnityToVS2015Projects\ HoloAcademy101 - Origami\Origami\App\Origami\project.lock.json" -bits=32 -configuration=Debug -removeDebuggableAttribute=False -path="." -path="..\Players\UAP\x86\Debug" " C:\Users\lakeb\Documents\UnityToVS2015Projects\HoloAcademy101 - Origami\Origami\App\Origami\Assembly-CSharp.dll" "C:\Users\lakeb\Documents\UnityToVS2015Projects\HoloAcademy101 - Origami\Origami\App\Origami\Assembly -CSharp-firstpass.dll" "C:\Users\lakeb\Documents\UnityToVS2015Projects\HoloAcademy101 - Origami\Origami\App\Origami\UnityEngine.dll" "C:\Users\lakeb\Documents\UnityToVS2015Projects\HoloAcademy101 - Origami\Origami\App\Origami\UnityEngine.UI.dll" "C:\Users\lakeb\Documents\UnityToVS2015Projects\HoloAcademy101 - Origami\Origami\App\Origami\UnityEngine.HoloLens .dll" "C:\Users\lakeb\Documents\UnityToVS2015Projects\HoloAcademy101 - Origami\Origami\App\Origami\UnityEngine.Networking.dll" "C:\Users\lakeb\Documents\UnityToVS2015Projects\HoloAcademy101 - Origami\Origami\App \Origami\UnityEngine.VR.dll"" 以代码 1 退出。\Users\lakeb\Documents\UnityToVS2015Projects\HoloAcademy101 - Origami\Origami\App\Origami\UnityEngine.VR.dll"" 以代码 1 退出。\Users\lakeb\Documents\UnityToVS2015Projects\HoloAcademy101 - Origami\Origami\App\Origami\UnityEngine.VR.dll"" 以代码 1 退出。

  • [取消前面的步骤再次编译折纸]我认为的第二种方法是通过在project.json文件中插入行来添加它

    “my.hololens.library”:“版本”

在这种情况下,我收到以下错误

有效负载包含两个或多个具有相同目标路径“System.Net.Sockets.dll”的文件。源文件:C:\Users\Antonino.nuget\packages\runtime.win.System.Net.Sockets\4.1.0\runtimes\win\lib\netcore50\System.Net.Sockets.dllC:\Users\Antonino.nuget \packages\System.Net.Sockets\4.0.0\lib\netcore50\System.Net.Sockets.dll Payload 包含两个或多个具有相同目标路径“System.Diagnostics.Tools.dll”的文件。源文件:C:\Users\Antonino.nuget\packages\runtime.any.System.Diagnostics.Tools\4.0.1\lib\netcore50\System.Diagnostics.Tools.dllC:\Users\Antonino.nuget\packages\System .Diagnostics.Tools\4.0.0\lib\netcore50\System.Diagnostics.Tools.dll 有效负载包含两个或多个具有相同目标路径“System.Threading.Timer.dll”的文件。源文件:C:\Users\Antonino.nuget\packages\runtime.any.System.Threading。Timer\4.0.1\lib\netcore50\System.Threading.Timer.dllC:\Users\Antonino.nuget\packages\System.Threading.Timer\4.0.0\lib\netcore50\System.Threading.Timer.dll 版本冲突检测到 System.Collections。折纸 (>= 1.0.0) -> Assembly-CSharp (>= 1.0.0) -> my.hololens.library (>= 版本) -> Microsoft.EntityFrameworkCore.Tools (>= 1.0.0-preview2-final) -> Microsoft.EntityFrameworkCore.Design (>= 1.0.0-preview2-final) -> Microsoft.EntityFrameworkCore.Design.Core (>= 1.0.0-preview2-final) -> Microsoft.AspNetCore.Hosting.Abstractions (>= 1.0.0) -> Microsoft.AspNetCore.Http.Abstractions (>= 1.0.0) -> System.Reflection.TypeExtensions (>= 4.1.0) -> System.Linq (>= 4.1.0) -> System.集合 (>= 4.0.11) 折纸 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.0. 0) -> Microsoft.NETCore.Runtime (>= 1.0.0) -> Microsoft.NETCore.Runtime.CoreCLR-arm (>= 1.0.0) -> System.Collections (= 4.0.10)。一个或多个包与 UAP 不兼容,Version=v10.0 (win10-x86-aot)。一个或多个包与 UAP 不兼容,Version=v10.0 (win10-arm-aot)。System.Reflection.Emit.ILGeneration 4.0.1 为 UAP 上的 System.Reflection.Emit.ILGeneration 提供了编译时参考程序集,Version=v10.0,但没有与 win10-x86-aot 兼容的运行时程序集。System.Reflection.Emit.ILGeneration 4.0.1 为 UAP 上的 System.Reflection.Emit.ILGeneration 提供了编译时参考程序集,Version=v10.0,但没有与 win10-x64-aot 兼容的运行时程序集。System.Reflection.Emit.ILGeneration 4.0.1 为 System.Reflection.Emit 提供了编译时参考程序集。UAP 上的 ILGeneration,Version=v10.0,但没有与 win10-x86-aot 兼容的运行时程序集。System.Reflection.Emit.ILGeneration 4.0.1 为 UAP 上的 System.Reflection.Emit.ILGeneration 提供了编译时参考程序集,Version=v10.0,但没有与 win10-x64-aot 兼容的运行时程序集。一个或多个包与 UAP 不兼容,Version=v10.0 (win10-x64-aot)。检测到 System.Collections 的版本冲突。Assembly-CSharp (>= 1.0.0) -> my.hololens.library (>= 版本) -> Microsoft.EntityFrameworkCore.Tools (>= 1.0.0-preview2-final) -> Microsoft.EntityFrameworkCore.Design (>= 1.0.0-preview2-final)-> Microsoft.EntityFrameworkCore.Design.Core(>= 1.0.0-preview2-final)-> Microsoft.AspNetCore.Hosting.Abstractions(>= 1.0.0)-> Microsoft.AspNetCore。 Http.Abstractions (>= 1.0. 0) -> System.Reflection.TypeExtensions (>= 4.1.0) -> System.Linq (>= 4.1.0) -> System.Collections (>= 4.0.11) Assembly-CSharp (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.0.0) -> Microsoft.NETCore.Runtime (>= 1.0.0) -> Microsoft.NETCore.Runtime.CoreCLR-arm (>= 1.0.0) -> 系统。集合(= 4.0.10)。一个或多个包与 UAP 不兼容,Version=v10.0 (win10-x64-aot)。一个或多个包与 UAP 不兼容,Version=v10.0 (win10-x86-aot)。System.Reflection.Emit.ILGeneration 4.0.1 为 UAP 上的 System.Reflection.Emit.ILGeneration 提供了编译时参考程序集,Version=v10.0,但没有与 win10-arm-aot 兼容的运行时程序集。一个或多个包与 UAP 不兼容,Version=v10.0 (win10-arm-aot)。System.Reflection.Emit.ILGeneration 4.0。

我很困惑该怎么办。有人说要制作一个可移植的库,我也尝试在这里研究NETFramework、NETCore 和 NETStandard 之间的关系,但似乎比想象的要复杂。

0 投票
2 回答
1529 浏览

unity3d - HoloLens BLE 通信(Windows 10)

我想要两个传感器,每只手一个,用于向 HoloLens Unity3D 应用程序提供位置值。这两个传感器暂时将成为 android 手机上的 android 原生应用程序,在 BLE 中发送一些随机值。

我只是想,既然 HoloLens 支持 BLE,holoLens 应该可以连接并接收传感器通告的值。但我在 Unity3D 资源商店中找不到任何适用于 Windows BLE 的插件。我需要知道是否有人在 Unity 中为 Windows BLE 实现了任何示例插件。

谢谢。

0 投票
2 回答
891 浏览

visual-studio - Unity3d 生成一个空的 .sln 文件

我正在学习 Microsoft 的Hololens Developer 100课程。一切顺利,直到我开始建造。我完全按照此处的说明进行操作,然后单击构建。它要求我选择一个文件夹,然后我创建一个名为“App”的文件夹(根据说明)并选择该文件夹。当我最终点击构建 Unity 时,它似乎工作正常,但随后出现了两件事:

1)生成的.sln文件不在App文件夹中,而是在父项目文件夹中。应用文件夹为空

2)当我打开 .sln 文件时,它是空的。该教程要求我编辑 Package.appxmanifes,但我不能,因为它似乎没有构建。

是否存在不正确的配置?也许 Unity 和 VS 没有正确地相互交谈?更重要的是,我该如何解决?

0 投票
2 回答
684 浏览

visual-c++ - 部署和加载图片以用作全息应用程序中的纹理

我在 Visual Studio 2015 中使用 C++/CX(或任何他们称之为带有帽子和 ref new 的花哨 C++ 的东西)创建了一个示例全息应用程序。它构建、部署和运行良好,渲染一个旋转的彩色立方体,就像它应该做的那样。现在我正在尝试添加一个 jpeg 图像并将其用作立方体上的纹理。问题是,我应该将图像放在哪里,如何将其添加到项目中,如何使 VS 将其与项目的其余部分一起部署,以及如何将其加载到我的应用程序中?

我对 DirectX 和 UWP 的体验几乎为零。我已经在我的桌面 Windows 10(一个常规的 C++ 应用程序,不是托管的,不是 UWP)上完成了这个关于纹理的教程,尽管他们在教程中将文件加载到纹理中的方式对我不起作用。经过一番谷歌搜索后,我下载了这个库,为桌面 Windows 10(DirectXTex_Desktop_2015_Win10.sln)构建了它,并在我的项目中使用如下:

有效。现在,对于 Hololens,我构建了他们的DirectXTex_Windows10.sln解决方案(假设另一个用于桌面,这个必须用于非桌面)并尝试(不成功)使用它,如下所示:

我也试过ms-appdata代替ms-appx. 在这两种情况下LoadFromWICFile都不返回S_OKERROR_INVALID_NAME: The filename, directory name or volume label syntax is incorrect.至于它myimage.jpg,我把它放到Assets子文件夹中,并通过添加到解决方案中Add->Existing Item。这足以让它部署到 Hololens 吗?如何检查它是否已部署?如果部署,它将位于设备上的哪个位置?

0 投票
3 回答
3102 浏览

c# - 在 Unity 中使用 GestureRecogniser 双击 hololens

我正在尝试在 hololens 中实现轻敲和双击手势。每个单独的手势都有效,但是,当我双击时,它也会单击两次。我看到一些使用计时器来解决它,但我认为可能有更优雅的解决方案。

由于我使用的是 GestureRecogniser,所以我有一个回调方法:

我可以在这里做任何事情,还是我必须求助于一个单独的脚本来检查它的Update功能?

谢谢!

0 投票
1 回答
671 浏览

unity5 - Microsoft HoloLens 教程,光标在自己的对象上

我开始为 Microsoft HoloLens 进行开发。为此,我制作了Hololens Academy的教程。这工作得很好。

现在我想用一个简单的 3D Sphere 代替 astroman 并从学院源代码中添加光标。我的问题是光标在球体上时不可见。有时我可以在球体的边界看到光标。

如果光标未指向球体,则它是可见的。就像在教程中一样,它是一颗星星。

重现步骤: 按照教程Holograms 210第一章。在“设置场景”步骤中,不要添加 AstroMan、SpaceAudioSource 和 SpaceBackground。在层次结构中单击创建 --> 3D 对象 --> 球体。然后将球体放在相机前面 X: 0, Y0, Z3。并将其缩放到 X=Y=Z=0.2。然后按照教程第 1 章进行到底。

我错了什么?我试图添加材料,选择触发器复选框......它不起作用。

非常感谢各种帮助。

光标不在球体中心:

光标不在球体中心

以球体为中心的光标:

光标以球体为中心

解决方案

感谢@Cameron Vetter 的回答,我发现了我的错误。

我的对撞机与网格渲染的大小完全相同。所以光标和网格在同一高度上。这就是为什么我看不到对象上的光标。

我删除了标准对撞机并添加了一个盒子对撞机。然后我将这个盒子碰撞器缩放到比每个轴的网格(1.05)大一点。现在它起作用了!

0 投票
1 回答
548 浏览

animation - HoloLens 上的 Unity 动画不起作用

我使用 Unity 3D 创建了一个 HoloLens 应用程序。在应用程序中,我想在单击按钮时显示带有一些动画的文本画布。我已经使用 Animator 控件和脚本完成了此操作,以便在单击按钮时打开动画状态。当我尝试 Unity Preview 时,这工作正常。但是,当我在 HoloLens 模拟器或设备上尝试相同的应用程序时,动画不起作用。经过一段时间的延迟后,画布没有任何动画就打开了(我认为动画延迟完成)。Unity 游戏预览并非如此。

请让我知道我们还做了哪些工作来支持在 HoloLens 上使用 Unity 制作的动画。

0 投票
1 回答
666 浏览

uwp - 如何在 Hololens UWP 应用中隐藏标题栏

我可以使用答案中的代码操作/隐藏桌面 UWP 应用程序中的标题栏:

但它不适用于 Hololens 环境。我已经搜索了文档,但似乎找不到解决方法。这可能吗?

0 投票
0 回答
236 浏览

unity3d - 有没有一种方法可以使用 Hololens 扫描和导出具有所有纹理细节的真实世界对象?

我即将开发基于扫描现实世界对象的东西。但是我找不到用纹理扫描单个对象的方法。有没有解决办法。我听说 Kinect 可以与 Hololens 一起使用吗?