![](https://i-blog.csdnimg.cn/blog_migrate/a9fa5f78ab7633256f0a1a941e7c0a6b.jpeg)
通常我们按照官网文档或者教程,在第一次编译UE4的时候都会让我们选择编译Development Editor。但是你又没有想过除了这个选项之外还有很多选项,他们是干什么的。其实当时太急于想知道他们的含义没有太大必要,因为这些选项是会随着我们之后的开发过程中慢慢领悟的。
当我的游戏代码出现问题需要调试的时候,发现查看变量内存值都是???或者乱码,这是因为我们在Development环境下,此时的代码运行已经被优化,调试内存值是有偏差的,需要Debug环境。所以我们切换到Debug选项,但是Debug又分好几种,一时也搞不清楚,于是就开始各种查各种问各种实验。
下面就介绍下我的研究结果,并没有包含所有的选项,比如Servet,Client,因为这些选项我确实用不到,自然也就没去关心它。对于初学者来说下面的解释也已经足够。
编译配置分为两部分:
State 和 Target
State包括:
Debug、DebugGame、Development、Shipping
Target包括:
空、Client、Editor、Server
任意组合将出现如下列表:
Debug 游戏和引擎全都可以调试,无优化,速度慢,没有Editor相关代码功能,资源需要Cook。
Debug Client
Debug Editor 游戏和引擎全部可以调试,无优化,可以使用Editor相关代码功能,资源不需要Cook,可直接启动编辑器。
Debug Server
DebugGame 游戏代码可调试无优化,Editor相关代码功能不可使用,引擎不可调试,资源需要Cook。
DebugGame Client
DebugGame Editor 游戏代码可调试无优化,可以使用Editor相关代码功能,引擎不可调试,资源不需要Cook。
DebugGame Server
Development 游戏、编辑器、引擎都不可调试,Editor相关代码功能不可使用,资源需要Cook。
Development Client
Development Editor 游戏、编辑器、引擎都不可调试,Editor相关代码功能可使用,资源不需要Cook。
Development Server
Shipping
Shipping Client
Shipping Editor
Shipping Server
Test
Test Client
Test Server
通常打包可以输出3中版本:
DebugGame、Development、Shipping
调试的时候Debug、DebugGame、Development是不可以直接在VS中启动的,首先会提示资源需要Cook,然而Cook之后会发现路径不对。
这时候需要我们手动指定执行的Exe程序:
1.通过编辑器打包游戏,比如DebugGame,然后打包输出到E:\UE4Cooked\WindowsNoEditor\FSGame\Binaries\Win64\FSGame-Win64-DebugGame.exe
2.拷贝工程下编译生成的exe程序比如:
FSGame.exe
FSGame-Win64-Debug.exe
FSGame-Win64-DebugGame.exe
其中任意一个替换拷贝至打包好的路径。
3.VS右键工程属性
![](https://i-blog.csdnimg.cn/blog_migrate/fe59bb24f4fb8428c0b78957fc372f0a.jpeg)
UE4的编译是个漫长过程,上面介绍的任意一个版本都得编译1小时左右,我的是40分钟。而且,并且,占用空间非常大,我的UE4编译过四五个版本,占用了快100G的硬盘,所以上述研究成果耗费了大量的人力物力还有时间,如果仍有不明白的问题可以微信回复我。