UE4 开发避坑指南(持续更新)

2,283 阅读5分钟

前言

距离上次接触 UE4 开发已经隔了差不多快有3个月之久了,作为现在游戏开发最热的引擎之一,我怎么能半途而废呢!于是乎,今年我决定把我的学习重点都放在 UE 身上,今年的文章输出 UE 的占比也会多一些,当然移动开发这一块我还是不会放弃的,一旦有干货,我会第一时间和大家分享。

入坑

作为一个接触 UE 时间不长的开发者,一开始尝试使用 UE 时 肯定是会遇到一些错误的,尽管有些错误很低级,但是鉴于你是初学者,也势必会消耗你大量的时间和精力去解决。

而且,鉴于好多 UE 的资料在国内你不搭梯子都查阅不到,更为你解决问题雪上加霜了。

所以我就打算写一篇文章,专门用于记录我在 UE 开发学习中遇到的一些错误以及解决方案,汇总成一个避坑指南。

截屏2022-02-16 上午10.53.20.png

好了,首先先记录一下第一个问题吧!

Xcode 编译报错

错误如下:

error: file 'xxx/xxx/xxx/....' has been modified since the precompiled header'xxx/xxx/xxx.pch' was built

解决方案:

在 Xcode 中,找到路径 "xxx/xxx/xxx.pch", Delete 后回到 Xcode 重新编译即可。

Win10 源码构建编译报错

错误如下:

error MSB3073: ....\Build\BatchFiles\Build.bat -Target="UE4Editor Win64 Development" -Target="ShaderCompileWorker Win64 Development -Quiet" -WaitMutex -FromMsBuild" exited with code 6.

解决方案:

由于 Win10 新加了用户隐私权限,所以我们双击 UE4.sln 将项目加载到 Visual Studio 并不是用的管理员权限,所以解决此错误的方案需要右键选择 “以管理员身份运行”,这样 Visual Studio 就会开始编译,大概需要花个几分钟的时间,就编译 Success 啦!

插件编译

错误如下:

Severity Code Description Project File Line Suppression State Error C4668 '_WIN32_WINNT_WIN10_TH2' is not defined as a preprocessor macro, replacing with '0' for '#if/#elif' SteamDemo C:\Program Files (x86)\Windows Kits\10\include\10.0.16299.0\um\winioctl.h 7542 Error C4668 '_WIN32_WINNT_WIN10_RS1' is not defined as a preprocessor macro, replacing with '0' for '#if/#elif' SteamDemo C:\Program Files (x86)\Windows Kits\10\include\10.0.16299.0\um\winioctl.h 7548 Error C4668 '_WIN32_WINNT_WIN10_TH2' is not defined as a preprocessor macro, replacing with '0' for '#if/#elif' SteamDemo C:\Program Files (x86)\Windows Kits\10\include\10.0.16299.0\um\winioctl.h 7553 Error C4668 '_WIN32_WINNT_WIN10_TH2' is not defined as a preprocessor macro, replacing with '0' for '#if/#elif' SteamDemo C:\Program Files (x86)\Windows Kits\10\include\10.0.16299.0\um\winioctl.h 7557 Error C4668 '_WIN32_WINNT_WIN10_RS2' is not defined as a preprocessor macro, replacing with '0' for '#if/#elif' SteamDemo C:\Program Files (x86)\Windows Kits\10\include\10.0.16299.0\um\winioctl.h 7564 Error C4668 '_WIN32_WINNT_WIN10_RS2' is not defined as a preprocessor macro, replacing with '0' for '#if/#elif' SteamDemo C:\Program Files (x86)\Windows Kits\10\include\10.0.16299.0\um\winioctl.h 7574 Error C4668 '_WIN32_WINNT_WIN10_TH2' is not defined as a preprocessor macro, replacing with '0' for '#if/#elif' SteamDemo C:\Program Files (x86)\Windows Kits\10\include\10.0.16299.0\um\winioctl.h 7578 Error C4668 '_WIN32_WINNT_WIN10_RS3' is not defined as a preprocessor macro, replacing with '0' for '#if/#elif' SteamDemo C:\Program Files (x86)\Windows Kits\10\include\10.0.16299.0\um\winioctl.h 7583 Error C4668 '_WIN32_WINNT_WIN10_RS2' is not defined as a preprocessor macro, replacing with '0' for '#if/#elif' SteamDemo C:\Program Files (x86)\Windows Kits\10\include\10.0.16299.0\um\winioctl.h 7777 Error C4668 '_WIN32_WINNT_WIN10_RS3' is not defined as a preprocessor macro, replacing with '0' for '#if/#elif' SteamDemo C:\Program Files (x86)\Windows Kits\10\include\10.0.16299.0\um\winioctl.h 12249 Error C4668 '_WIN32_WINNT_WIN10_RS3' is not defined as a preprocessor macro, replacing with '0' for '#if/#elif' SteamDemo C:\Program Files (x86)\Windows Kits\10\include\10.0.16299.0\um\winioctl.h 12266 Error C4668 '_WIN32_WINNT_WIN10_RS2' is not defined as a preprocessor macro, replacing with '0' for '#if/#elif' SteamDemo C:\Program Files (x86)\Windows Kits\10\include\10.0.16299.0\um\winioctl.h 12285 Error C4668 '_WIN32_WINNT_WIN10_RS3' is not defined as a preprocessor macro, replacing with '0' for '#if/#elif' SteamDemo C:\Program Files (x86)\Windows Kits\10\include\10.0.16299.0\um\winioctl.h 12404 Error MSB3073 The command "H:\UnrealEngine\Engine\Build\BatchFiles\Build.bat SteamDemoEditor Win64 Debug -Project="H:\UnrealEngine\Projects\SteamDemo\SteamDemo.uproject" -WaitMutex -FromMsBuild" exited with code 6. SteamDemo C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\VC\VCTargets\Microsoft.MakeFile.Targets 44

解决方案:

在插件的 cs 文件中加入如下代码:

bEnableUndefinedIdentifierWarnings = false;

最后

这个是一篇持续更新的文章,如果大家在开发过程中遇到了一些棘手的问题,可以来我这先搜一下,或者您也可以分享给我,我会帮您的问题加入到这个避坑指南中,予人玫瑰,手有余香。更多关于 UE 的问题,小伙伴们可以通过我的公号与我联系,咱们互相交流,互相学习。

我是杰少,如果您觉的我写的不错,那请给我 点赞+评论+收藏 后再走哦!

**往期文章:

请你喝杯 ☕️ 点赞 + 关注哦~

  1. 阅读完记得给我点个赞哦,有👍 有动力
  2. 关注公众号--- HelloWorld杰少,第一时间推送新姿势

最后,创作不易,如果对大家有所帮助,希望大家点赞支持,有什么问题也可以在评论区里讨论😄~**