可以根据项目需求可以裁剪以下的引擎模块支持,降低编译的可执行文件、包体大小:
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
控制。