项目团队中的分工协作必不可少,在UE项目中进行版本控制非常必要。UE支持使用Perforce和SVN进行版本管理,此处选用自己比较熟悉的SVN。
通过编辑器偏好设置窗口(编辑(Edit)> 编辑器偏好设置(Editor Preferences)> 加载和保存(Loading & Saving))启用源码管理。
选择关卡编辑器窗口的源码管理,输入SVN库地址、用户名及密码等,选择“接受设置”开始使用源码管理。
源码管理设置后,点击“源码管理-提交到源码管理”。
可以看到待提交文件列表,不同图标代表不同状态,与其他SVN插件的表示形式一致。输入变更列表描述,属于必填,之后点击提交即可。
在设置完源码管理后,同样可以通过”文件-提交到源码管理“将UE项目文件提交到远程代码库。
UE项目体积都比较大,尤其是一通操作后好多个G都是正常的,这里面大部分是临时文件,全部提交到SVN库也是不现实的。一方面要充分利用UE引擎自带的SVN源码管理功能,另一方面也要详细掌握UE项目的文件目录结构。
UE项目中有以下常见目录,其作用描述如下:
Binaries - 包含可执行文件或编译期间创建的其他文件。
Build - 包含编译引擎或游戏所需的文件,包括为某些特定平台创建项目版本时所需的文件。
Config - 配置文件,包含的参数可用于控制引擎的行为。你在游戏项目Config文件中设置的值会覆盖 Engine\Config 目录中设置的值。
Content - 保存引擎或游戏中的内容,例如资产包、贴图。
DerivedDataCache - 包含派生数据文件。这类数据专为被引用内容生成,并且在加载时生成。假如被引用内容未生成过缓存文件,则加载时间会显著增加。
Intermediate - 包含编译引擎或游戏时生成的临时文件。在游戏目录中,着色器也保存在Intermediate目录中。
Saved - 包含自动保存文件、配置(.ini)文件和日志文件。此外,Engine > Saved 目录还包含崩溃日志、硬件信息和Swarm选项与数据。
Source - 包含引擎或游戏的所有源文件,包括引擎源代码、工具和游戏类等。
Engine - Engine目录中的源文件组织结构如下:
Developer - 编辑器和引擎共同使用的文件。
Editor - 仅供编辑器使用的文件。
Programs - 引擎或编辑器使用的外部工具。
Runtime - 仅供引擎使用的文件。
Game - 游戏项目目录中的源文件按模块分组,一个模块一个目录。每个模块包含以下内容:
Classes - 包含所有的头文件(.h)。
Private - 包含所有 .cpp 文件,包括游戏逻辑类以及各种模块的实现文件。
Public - 包含模块的头文件。
由于UE支持使用蓝图和C++类进行开发,C++开发人员可以使用VisualStudio参与项目开发协作。
以VS2022为例,进行UE项目开发的前提是启用”使用C++的游戏开发“,安装一些列组件。
另外UE项目创建时如果选择的是蓝图项目,是没有C++的解决方案文件(sln)的,需要将蓝图项目转化为C++代码项目。
选择”文件-新建C++类“,选择父类为”无“,点击”下一步“确认保存路径。
点击”创建类“,UE引擎开始创建并编译类,编译完成后会在项目根目录生成VS的解决方案文件。
使用VS打开C++代码项目,同样可以使用SVN插件进行源码管理。