裁剪不必要的引擎模块

可以根据项目需求可以裁剪以下的引擎模块支持,降低编译的可执行文件、包体大小:

APEX

如果不适用 Nvidia 的 APEX 破碎系统,可以在编译引擎时去掉 APEX 的支持。

可以在 BuildSetting 或者 TargetRules 设置bCompileAPEX=true

Recast(NavMesh)

如果客户端在运行时不需要 Recast 的支持,并且不需要客户端本地进行 NavMesh 寻路操作,可以运行时裁剪掉 NavMesh 的支持。
可以在 BuildSetting 或者 TargetRules 设置bCompileRecast=true

FreeType

是否需要 FreeType 字库支持,可以在 BuildSetting 或者 TargetRules 设置bCompileFreeType=true

ICU(unicode/i18n)

引擎 Core 模块中对 unicode/i18n 的支持,可以在 BuildSetting 或者 TargetRules 设置bCompileICU=true

CompileForSize

UE 提供的优化选项,可以控制编译时严格控制大小,但是会牺牲性能。
可以在 BuildSetting 或者 TargetRules 设置bCompileForSize=true

CEF3

可选是否支持 Chromium Embedded Framework,Google 的嵌入式浏览器支持。
可以在 BuildSetting 或者 TargetRules 设置bCompileCEF3=true

Audio 模块

因为项目使用 WWise 作为音频播放接口,如果完全不需要引擎中内置的 Audio 模块,该部分功能是冗余的,在后续的优化中可以裁剪掉。

国际化模块

如果游戏的多语言支持不依赖 UE 的文本采集和翻译功能,可以裁剪掉该模块。

Steam

游戏不需要 Steam 的支持,可以去掉,在 TargetRules 中通过 bUsesSteam 控制。

SpeedTree

如果游戏中不需要使用 SpeedTree 进行植被建模,可以关闭编译 SpeedTree,通过 TargetRules 中的 bOverrideCompileSpeedTree 控制。