由于引擎版本更替原因辩尊,4.19版本后UE4渲染管線大改赎婚,F(xiàn)Lex在官方Git整合的最后版本為4.19.2只锻,相對穩(wěn)定玖像,但實際上還是存在著不少問題,影響了游戲的打包。
本文旨在搬運(yùn)由git上#523 issue提出打包問題的解決方案供大家參考學(xué)習(xí)捐寥。
分為版本導(dǎo)致的聲明方式更改和Include-what-you-use(IWYU)問題
首先是版本導(dǎo)致的聲明方式更改問題
①Use newer conventions to suppress warnings笤昨,目標(biāo)文件是Engine/Plugins/GameWorks/Flex/Source/ThirdParty/FlexLibrary/FlexLibrary.Build.cs,
修改如下所示
然后是廢棄函數(shù)問題
②Use new function instead of the deprecated one握恳,目標(biāo)文件是Engine/Source/Runtime/Engine/Private/Materials/MaterialExpressions.cpp瞒窒,
修改如下圖所示
最后是IWYU問題
③Some IWYU fixes so packaging no longer breaks,目標(biāo)文件挺多
Engine/Plugins/GameWorks/Flex/Source/Flex/Classes/FlexFluidSurfaceActor.h
Engine/Plugins/GameWorks/Flex/Source/Flex/Private/FlexGPUParticleEmitterInstance.cpp
Engine/Plugins/GameWorks/Flex/Source/Flex/Private/FlexManager.cpp
Engine/Plugins/GameWorks/Flex/Source/Flex/Private/FlexParticleEmitterInstance.cpp
Engine/Plugins/GameWorks/Flex/Source/Flex/Public/FlexGPUParticleEmitterInstance.h
Engine/Plugins/GameWorks/Flex/Source/Flex/Public/FlexParticleEmitterInstance.h
Engine/Source/Runtime/Engine/Public/GameWorks/FlexPluginGPUParticles.h
修改如下圖所示
其中3-1和3-7問題在我的項目實際打包過程中出現(xiàn)乡洼。
做一些簡單的解釋:
前者是IWYU問題崇裁,后者是和標(biāo)準(zhǔn)庫函數(shù)發(fā)生沖突了,所以這里要用FORCEINLINE內(nèi)聯(lián)重載操作符束昵,以避開和標(biāo)準(zhǔn)庫之間的聲明沖突拔稳。