# 目录结构

此文为Directory Structure (opens new window)的原创翻译,本文内容版权归原文所有,仅供学习,如需转载望注本文地址,翻译不易,谢谢理解。

在上层,有很多引擎目录和游戏项目目录,引擎目录包含引擎自身和它使用的所有工具。每个游戏目录包含该游戏所拥有的所有文件,相比以前的版本,UE4更好地将引擎和游戏项目文件分开。

# 根目录

  • Engine - 包含所有源代码,内容等组成引擎的东西。
  • Templates - 项目模板。
  • GenerateProjectFiles.bat - 用来创建UE4解决方案和VisualStudio中为引擎和游戏工作的文件。
  • UE4Games.uprojectdirs - 帮助引擎在子目录中找到项目。

# 通用目录

下面列出了引擎或者游戏项目中的子目录:

  • Binaries - 包含执行文件或者编译期间创建的文件。
  • Build - 储存构建引擎和游戏的文件,包括创建平台相关的必要文件。
  • Config - 配置文件可以设置值来控制引擎的行为。在游戏项目Config目录下设置的值会覆盖Engine\Config目录下的文件。
  • Content - 用来存储引擎或者游戏的内容,包括资产包和地图。
  • DerivedDataCache - 包含引用内容加载时生成的数据文件,如果没有这些缓存文件将会明显地增加加载时间。
  • Intermediate - 包含在引擎或游戏构建中生成的临时文件,在游戏目录中,Shaders会被存储在这个目录里。
  • Saved - 包含自动保存,配置文件(ini)文件,log文件。在Engine>Saved目录中包含崩溃日志,硬件信息,和Swarm选项和数据。
  • Source - 包含引擎或游戏的所有源文件,包括引擎源代码,工具,gameplay类等等。
    • Engine - Engine目录下的源文件被分类成如下:
      • Developer - 被编辑器和引擎使用的文件。
      • Editor - 只被编辑器使用的文件。
      • Programs - 被引擎或编辑器使用功能的外部工具。
      • Runtime - 只被引擎使用的文件。
    • Game - Game项目目录下的源文件以模块的方式组织起来,每个模块一个目录,每个模块包含:
      • Classes - 包含gameplay类头文件(.h)。
      • Private - 包含gameplay类实现和模块实现的.cpp文件。
      • Public - 包含模块的头文件。

# 引擎相关的目录

和引擎目录相关的一些子目录:

  • Documentation - 包含引擎的文档,包括源文件和发布文件。
    • HTML - 发布的HTML文档文件。
    • Source - 文档的源markdown文件。
  • Extras - 额外帮助和工具文件。
  • Plugins - 包含在引擎中使用的插件。
  • Programs - 包含在UE4根目录下存储的配置文件和log文件,还有其他UE4程序比如UnrealFrontend和UnrealHeaderTool。
  • Shaders - 包含引擎的shader源文件(.usf)。

# 游戏项目目录

  • Binaries - 包含执行文件编译期间的其他生成文件。
  • Config - 包含游戏的默认项目设置。
  • Content - 包含引擎或游戏的内容,包括资产包和地图。
  • External dependencies - 显示引擎公开头文件(只在Visual Studio中可见)。
  • Intermediate - 包含被UnrealBuildTool生成的文件,比如Visual Studio项目文件,这些文件可以被删除和重建。
  • Saved - 包含被引擎生成的文件比如配置文件和日志文件,这些文件可以被删除和重建。
  • Source - 包含游戏模块的对象类文件。

# 解决方案目录

  • Classes - 包含游戏对象类定义。(.h文件)
  • Config - 默认游戏的项目设置。
  • External dependencies - 显示引擎公开头文件。(只在Visual Studio中可见)
  • Private - 包含私有游戏对象类的实现。(.cpp文件)
  • Public - 包含公开游戏对象类的实现。(.cpp文件)

# 其他文件类型

  • *.usf文件 - Shader源码
  • *.udn文件 - 引擎文档文件
  • *.ini文件 - 程序配置文件
  • *.int文件 - 本地化文件
  • *.rc,.manifest - 程序资源文件和清单
  • 一些外部非生成的项目文件或工具,比如UnrealBuildTool,Clean