环境
- HoloLens
- Unreal Engine 4.26.2(也可以使用UE5)
- Visual Studio 2022
- .NET 桌面开发
- 使用 C++ 的桌面开发
- 通用 Windows 平台 (UWP) 开发
- 使用 Unity 进行游戏开发(如果计划使用 Unity)
需要安装UE4带HoloLens
杂项
项目设置里面勾选Start in AR
才能在HoloLens里面全屏跟随视角播放
渲染设置Forward Render
减少开销
blender模型导出fbx导入虚幻,模型光照出现反向,面朝光照的暗,背光的亮,导入的时候取消勾选生成光照UV
插件安装
EPIC虚幻商城搜索安装两个插件:,
Mixed Reality Toolkit Hub
,
Mixed Reality UX Tools
HoloLens上安装OpenXR运行时(如果使用OpenXR插件),Remote
Hologram(流式调试工具)
注意,Microsoft OpenXR插件目录下的nuget.exe是损坏的,需要自行下载替换,不然编译的时候会报错 >
UE4自带的
Microsoft Windows Mixed Reality
要启用,如果安装了Microsoft OpenXR
(虚幻商城),跟前者冲突,而且测试过后者不能设置输入?还是名称变了,前者在使用远程调试时会有目视数据,后者不会有,需要实机安装 这两个插件二选一
rpclib导入
UE4的第三方源码库里面有rpclib可以用作通信,修改编译配置文件,增加Windows下的导入头文件可以实现库的导入
= true;
bEnableExceptions = PCHUsageMode.UseExplicitOrSharedPCHs;
PCHUsage
.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore" });
PublicDependencyModuleNames.AddRange(new string[] { });
PrivateDependencyModuleNames// 添加rpclib
AddEngineThirdPartyPrivateStaticDependencies(Target, "RPCLib");
string rpcLibDir = Path.Combine(Target.UEThirdPartySourceDirectory, "rpclib");
.Add(Path.Combine(rpcLibDir, "Source", "include")); PublicIncludePaths
然后把导入头文件加到源码目录(该头文件从UE4ML插件里的做的修改)
// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#pragma push_macro("check")
#undef check
// we define 'nil' since on Macs we treat C++ as Objective-C++
#pragma push_macro("nil")
#undef nil
#pragma warning(disable:4005)
#pragma warning(disable:4668)
#ifdef __clang__
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wundef"
#pragma clang diagnostic ignored "-Wshadow"
#endif
#ifndef RPCLIB_MSGPACK
#define RPCLIB_MSGPACK clmdep_msgpack
#endif /* ifndef RPCLIB_MSGPACK */
#include "Windows/PreWindowsApi.h"
#include "rpc/client.h"
#include "rpc/server.h"
#include "rpc/this_handler.h"
#include "rpc/msgpack.hpp"
#include "Windows/PostWindowsApi.h"
#ifdef __clang__
#pragma clang diagnostic pop
#endif
#pragma warning(default:4005)
#pragma warning(default:4668)
#pragma pop_macro("check")
#pragma pop_macro("nil")
Conan、Vcpkg导入第三方库
参考 https://github.com/BlurringShadow/ue-vcpkg-integrate 的工程格式,但是需要添加HoloLens平台,Windows的库和HoloLens的库需要分开编译放入
导入的第三方库需要注意是否和UE的自带的库冲突,冲突的库需要做隔离。比如Grpc依赖zlib,但UE自带zlib库,则需要Grpc把zlib静态链接到库里面防止链接的时候冲突(修改UnrealBuildTool脚本不知道能否解决)
HoloLens设置立方体图标
项目设置>平台>HoloLens>打包>中性资产>Images>3D标志,勾选然后导入glb模型,这样打包的应用程序在启动后会出现一个立方体包裹的模型,点击播放然后进入应用程序
打包好的软件使用Web安装出错
使用HoloLens管理Web把安装包上传到设备上,用设备的文件管理器点击安装(猜测由于Smart
Screen在没联网的情况下安装包可能不通过),只需要拷贝xxx.appboundle