前言
上一篇尝试将 Hololens2 的研究模式与 Unity 项目进行了整合。归根结底,就是将研究模式的相关 API(C++)构建成 DLL 文件,才能实现在 Unity(C#)中进行调用。这篇就介绍一下如何自己创建一个最简单的 DLL 文件,实现在 Unity 中的调用。
环境
- Windows 10 教育版 18363.1379
- Unity 2019.4.20f1c1
- VS2019 16.8.6
- WIN SDK 10.0.18362.0
- Hololens2 内部预览版本 10.0.20301.1000
VS2019创建DLL项目
选择创建新项目,搜索 DLL 模板,选择 DLL(通用Windows) 模板,点击下一步
设置项目名称和位置,点击创建
选择目标版本最低版本,一般默认即可。实际上,项目创建完成后,在项目属性设置中也可更改这个设置,如何更改可以看:Hololens2-运行研究模式官方案例(SensorVisualization)
编写DLL代码
主要更改的就是 HL2RmUnityPlugin.h 和 HL2RmUnityPlugin.cpp 这两个文件。编写代码如下
HL2RmUnityPlugin.h
#pragma once
#define FUNCTIONS_EXPORTS_API extern "C" __declspec(dllexport)
extern "C" {
typedef struct IMUInputForUnity {
double x;
double y;
double z;
}INPUT;
typedef struct IMUOutputForUnity {
double x;
double y;
double z;
}OUTPUT;
}
namespace HL2Stream {
FUNCTIONS_EXPORTS_API int __stdcall GetIMUStreaming(INPUT* input, OUTPUT* output);
}
HL2RmUnityPlugin.cpp
#include "pch.h"
#include "HL2RmUnityPlugin.h"
int __stdcall HL2Stream::GetIMUStreaming(INPUT* input, OUTPUT* output)
{
output->x = input->x * input->x;
output->y = input->y * input->y;
output->z = input->z * input->z;
return 200;
}
GetIMUStreaming




最低0.47元/天 解锁文章
578

被折叠的 条评论
为什么被折叠?



