# 环境

  • Windows 10 教育版 18363.1379
  • Unity 2019.4.20f1c1
  • VS2019 16.8.6
  • WIN SDK 10.0.18362.0
  • Hololens2 内部预览版本 10.0.20301.1000

# 创建项目

# 切换平台

在菜单栏 File -> Build Settings 中切换为 UWP 平台

# 创建新场景

使用 Ctrl + NCtrl + S 创建新场景并保存为 StreamingScene

# 构建 Hololens2 研究模式动态链接库

  1. 找一个位置 Clone HoloLens2-Unity-ResearchModeStreamer 仓库。

  2. 在 VS2019 中打开 HL2RmStreamUnityPlugin 解决方案。

  3. 选择 Release, ARM64 生成解决方案

  4. HL2RmStreamUnityPlugin/ARM64/Release/HL2RmStreamUnityPlugin 下可以找到 HL2RmStreamUnityPlugin.dll 。如下图:

# Unity 中调用动态链接库

  1. 在 Unity 编辑器中,创建 Assets/Plugins/WSAPlayer/ARM64 文件夹

  2. 拷贝上一步生成的 HL2RmStreamUnityPlugin.dll 到刚创建的文件夹中

  3. 创建 Assets/Scripts 文件夹,然后在文件夹中创建 StartStreamer C# 脚本

  4. 双击在 VS2019 中打开脚本文件,然后编辑如下:

    using System.Runtime.InteropServices;
    using UnityEngine;
    public class StartStreamer : MonoBehaviour
    {
    #if ENABLE_WINMD_SUPPORT
        [DllImport("HL2RmStreamUnityPlugin", EntryPoint = "StartStreaming", CallingConvention = CallingConvention.StdCall)]
        public static extern void StartStreaming();
    #endif
        // Start is called before the first frame update
        void Start()
        {
    #if ENABLE_WINMD_SUPPORT
            StartStreaming();
    #endif
        }
        // Update is called once per frame
        void Update()
        {
            
        }
    }

    保存,返回 Unity 编辑器

  5. 可以把脚本挂在到 Main Camera 上:

  6. 在菜单栏打开 Edit -> Project Settings 。在 Player -> Publishing Settings 确保以下权限被勾上:

    • InternetClient
    • InternetClientServer
    • PrivateNetworkClientServer
    • WebCam
    • SpatialPerception

  7. Ctrl + S 保存项目。打开菜单栏 File -> Build Settings ,添加场景,然后构建。

# 部署到 Hololens2

  1. 找到生成的文件夹,在文本编辑器中打开 UnityHL2RmStreamer\Package.appxmanifest 文件,并按照如下配置,以确保研究模式被允许:

    • 添加 xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"Package
    • 添加 rescap 到 Ignorable Namespaces: IgnorableNamespaces="... rescap"
    • 添加 <rescap:Capability Name="perceptionSensorsExperimental" />Capabilities
    • 保存然后关闭 Package.appxmanifest

  2. 在 VS2019 中打开 UnityHL2RmStreamer.sln 解决方案,用 Release, ARM64 生成解决方案,然后部署到 Hololens2 设备上。

# Python 客户端接收 Hololens2 视频帧

Python 脚本可在此处获得:hololens2_simpleclient.py

注意把脚本中的 Host 改成自己 Hololens2 设备的 IP 地址

# 运行结果

后期我会尝试把研究模式的加速度计、陀螺仪和磁力计流整合进 Unity 项目~

# 致谢

  • HoloLens2-Unity-ResearchModeStreamer
  • Implementation of the IMU inside the StreamRecorder App #67
  • HoloLens2ForCV
更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

宇凌喵 微信支付

微信支付

宇凌喵 支付宝

支付宝