这真的是一个长久以来令人头疼的玄学问题,终于在Wiki上找到了解决办法,亲测有效。现做中文总结,翻不了墙的朋友可以在这看。
解决办法
在YourProject.Build.cs中添加ProceduralMeshComponent:
PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore","ProceduralMeshComponent" });
4.17版本后,还需要在YourProject.uproject中添加ProceduralMeshComponent:
"Modules": [
{
"Name": "DrawStaticMeshInUE",
"Type": "Runtime",
"LoadingPhase": "Default",
"AdditionalDependencies": [
"ProceduralMeshComponent"
]
}
],
"Plugins": [
{
"Name": "ProceduralMeshComponent",
"Enabled": true
}
]
为了清除VS智能检测的红线报错提示,保留Config、Content、Source、YourProject.uproject文件夹,删除其余文件夹。
右键YourProject.uproject,选择Generate Visual Studio project files,重新生成VS项目,在此之前必须保证UE项目能够正常打开。然后打开VS项目,右键 Games->你的项目->重新扫描解决方案 即可。红线消失,编译成功了。