Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unity3d 是否可以将MS Band与Unity独立Windows build一起使用?_Unity3d_Microsoft Band - Fatal编程技术网

Unity3d 是否可以将MS Band与Unity独立Windows build一起使用?

Unity3d 是否可以将MS Band与Unity独立Windows build一起使用?,unity3d,microsoft-band,Unity3d,Microsoft Band,我正试图找出最快的方法,将数据从MS Band 2传输到支持VR的Unity独立Windows构建中。我能够在我的Win10笔记本电脑上构建和运行SDK示例应用程序,它们可以正常工作 我尝试过各种方法,从将Microsoft.Band.DLL作为托管插件导入Unity,到尝试将Band DLL封装在本机插件中。然而,我还没有找到一种方法来实现这一点。我开始怀疑,由于一些原因,我根本无法让Band DLL与独立的Windows构建一起工作 当我尝试将Band DLL用作托管插件时,Unity不支持

我正试图找出最快的方法,将数据从MS Band 2传输到支持VR的Unity独立Windows构建中。我能够在我的Win10笔记本电脑上构建和运行SDK示例应用程序,它们可以正常工作

我尝试过各种方法,从将Microsoft.Band.DLL作为托管插件导入Unity,到尝试将Band DLL封装在本机插件中。然而,我还没有找到一种方法来实现这一点。我开始怀疑,由于一些原因,我根本无法让Band DLL与独立的Windows构建一起工作

当我尝试将Band DLL用作托管插件时,Unity不支持Band DLL所需的C#4。当我尝试创建一个本机DLL时,我不知道如何在VS2015中创建一个可以与Band SDK一起使用的项目,我也不能将示例项目更改为输出一个DLL而不是一个应用程序。当我尝试一个可以输出DLL的新项目,并尝试安装Microsoft.Band NuGet包时,它告诉我,即使SDK版本为10.*,我的项目的目标仍然是“native,Version=v0.0”

理想情况下,有一种方法可以将所需的DLL与Unity中的Band DLL结合起来,我可以作为托管插件访问它。但我甚至很乐意在Extn“C”中包装C++文件,并创建一个单独的函数来返回每个数据带。

我只是不太熟悉通用Windows的概念,不知道是否有办法让它与Unity独立Windows构建一起工作,或者是否有人故意阻止它以这种方式工作。因为它们都在同一台机器上运行,所以这似乎是可能的


我的后备计划是编写一个读取设备数据的通用Windows应用程序,并让它连接到Unity独立Windows应用程序以访问它。无论是通过本地文件、网络连接,或者远程服务器是另一个问题。

这样做的最佳方法是使用C++MS波段周围制作一个包装,但在这种情况下这不是一个选项,因为Microsoft没有用于MS波段C++API自2015年末以来,他们的网站上满是程序员要求C++支持的请求,而他们忽略了这些请求。 您还有4个其他选项,可能有效,也可能无效

  • 尝试统一C#5.0和6.0集成 这将允许您统一使用C#>4。如何设置它在页面上

  • 使用本地进程间通信。 使用C#制作一个控制台插件,并使用visualstudio而不是Unity将项目构建为C#。将它编译为exe而不是DLL,并调用它MSBandLIC.exe。在此程序中编写与MS波段通信的所有代码

    从您的Unity程序启动MSBandLIC.exe程序

    然后,您可以使用匿名管道从Unity与MSBandLIC.exe通信。代码很长,但很容易编写。这里有一个来自微软的链接,介绍如何做到这一点。

  • TCP控制台插件

    使用C#制作一个控制台插件,并使用visualstudio而不是Unity将项目构建为C#。将其编译为exe,而不是DLL,并将其命名为MSBandTCP.exe

    从您的Unity程序启动MSBandTCP.exe程序。在此程序中编写与MS波段通信的所有代码,然后创建一个侦听端口5550TCP服务器

    在Unity侧,使用TCP通过端口5550连接到您的本地计算机,在那里您可以进行通信接收来自MS波段的信息

  • API进行反向工程并使用您需要从MS波段访问的功能使您的API变得简单。它看起来像是MS波段通过蓝牙与计算机/手机进行通信蓝果乐嗅探器Wireshark应该可以帮助您实现这一点

    如何做到这一点:

    从MS Band API中选择所需的函数。 编写一个不带Unity的C#应用程序,在2秒钟内将消息发送到MS波段。使用蓝果乐嗅探器Wireshark查看从窗口MS波段的消息MS波段应该响应,如果它响应,但它发送的是加密的,请使用JustDecompile反编译API的DLL部分,并找出API如何反编译它从MS波段接收的字节。然后,您可以根据收集到的信息重构自己的API


  • 最好的方法是使用C++围绕MS波段制作一个包装,但在这种情况下,这不是选项,因为Microsoft没有针对MS波段C++API,而且他们的网站充满了程序员的请求自2015年末以来要求C++支持,但他们忽略了这一点。 您还有4个其他选项,可能有效,也可能无效

  • 尝试统一C#5.0和6.0集成 这将允许您统一使用C#>4。如何设置它在页面上

  • 使用本地进程间通信。 使用C#制作一个控制台插件,并将项目构建为