这真的是一个长久以来令人头疼的玄学问题,终于在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->你的项目->重新扫描解决方案即可。红线消失,编译成功了。