You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity开发HoloLens2应用如何在运行时从PC端加载医疗数据文件

HoloLens 2 + Unity 2020.3 运行时读取PC端医疗数据实现方案

1 前置配置要求

先把基础环境配置做对,避免后续出现无意义的兼容性问题:

  • 安装Mixed Reality Toolkit (MRTK) 2.8.x版本,这是适配Unity 2020.3和HoloLens 2的最稳定版本,不要使用更高版本的MRTK,会出现API不兼容问题
  • 项目UWP打包设置里必须开启三个网络相关权限:Internet(Client)、Internet(Client&Server)、Private Networks(Client&Server),否则HoloLens的局域网访问会直接被系统拦截
  • 确保HoloLens 2和目标PC处于同一局域网下,关闭PC端公共防火墙,或者给后续用到的通信端口单独设置放行规则

2 主流实现方案(按实现门槛从低到高排序)

方案1:PC端搭建简易HTTP文件服务(最推荐,适配只读医疗数据需求)

不需要复杂网络编程,开发量最小:

  • PC端用C#的HttpListener类即可快速实现一个轻量文件服务,核心逻辑示例:
// PC端HTTP服务核心代码
var listener = new HttpListener();
// 监听8080端口的files路径请求
listener.Prefixes.Add("http://*:8080/files/");
listener.Start();
while (true) {
    var context = listener.GetContext();
    var fileName = context.Request.Url.AbsolutePath.Replace("/files/", "");
    // 替换为你PC上存储医疗数据的本地目录
    var filePath = Path.Combine(@"C:\MedicalDataStorage", fileName);
    if (File.Exists(filePath)) {
        context.Response.ContentType = "application/octet-stream";
        using var fileStream = File.OpenRead(filePath);
        fileStream.CopyTo(context.Response.OutputStream);
    }
    context.Response.Close();
}
  • HoloLens端直接用Unity自带的UnityWebRequest请求对应文件即可,调用示例:
// HoloLens端请求文件协程示例
IEnumerator LoadMedicalFile(string fileName) {
    // 替换为你PC的局域网IPv4地址
    string requestUrl = $"http://192.168.xxx.xxx:8080/files/{fileName}";
    using var request = UnityWebRequest.Get(requestUrl);
    yield return request.SendWebRequest();
    if (request.result == UnityWebRequest.Result.Success) {
        byte[] fileRawData = request.downloadHandler.data;
        // 此处写入你自己的医疗数据解析逻辑即可
    }
}
  • 优势:逻辑成熟稳定,对医疗数据格式无限制,不需要处理连接保活逻辑;如果涉及敏感数据,可自行在请求头加自定义校验字段,服务端验证通过再返回文件即可

方案2:TCP Socket双向通信(适合大文件断点续传、实时交互需求)

如果需要频繁双向传输数据或者大文件分片传输,可以用原生Socket实现:

  • 直接使用C#原生System.Net.Sockets类即可,UWP平台完全兼容该API,不需要额外引入第三方插件
  • PC端作为TCP服务端监听指定端口,HoloLens作为客户端主动连接PC的局域网IP和端口,双方按照自定义的传输协议交互即可
  • 注意:Socket收发逻辑要放在独立后台线程执行,不要卡Unity主线程,避免影响HoloLens的渲染流畅度

方案3:SMB共享直接读取(适合临时调试场景)

如果PC端已经开启了文件夹共享,HoloLens可以直接访问SMB共享路径读取文件:

  • 需要调用UWP原生Windows.StorageAPI,代码要用UWP平台宏包裹,仅在打包UWP时生效
  • 该方案限制较多,需要提前给共享文件夹开启匿名访问权限,或者代码里传入PC的账号密码,稳定性不如前两个方案,仅适合临时调试使用

3 常见踩坑点

  • Unity 2020.3的UnityWebRequest在UWP平台默认会拦截本地局域网请求,可以自定义证书处理类跳过校验即可
  • 不要使用localhost作为请求地址,一定要填PC的实际局域网IP,可在PC端cmd执行ipconfig查看IPv4地址
  • 体积超过100M的医疗数据建议做分片传输,不要一次性加载到内存,避免触发HoloLens的内存限制导致应用闪退

内容的提问来源于stack exchange,提问作者Elena Stocco

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 19:06:02