博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UE4入门学习2:工程结构分析
阅读量:4648 次
发布时间:2019-06-09

本文共 2279 字,大约阅读时间需要 7 分钟。

- -
文章 UE4入门学习2:工程结构分析
作者 游蓝海( )

最近又开始996加班了,业余时间更少了,以后文章更细的速度可能也会较慢了。

接上一节《UE4入门学习1:环境搭建》,我把工程整理了一下,工程名称改为“HelloUE4”,放到了github上()。本文的目的是详细分析上一节中建立的工程结构,从宏观上认识UE4。

文件目录结构

根目录

UE4工程文件目录结构

上图是UE4工程在Windows系统上的工程目录截图。下面用表格说明每个目录的含义:

文件名称 说明
.vs/ Vistual Studio生成的临时目录,版本库中可忽略
Binaries/ C++代码编译输出的动态链接库文件,编辑器会自动检测和加载这些动态链接库(热重载)。版本库中可忽略
Config/ 工程的配置文件。可以手动打开修改,也可以在UE4编辑器中通过图形界面来修改
Content/ 资源目录。UE4的资源都是以专用的二进制格式存贮的,只能通过编辑器导入。不能手动将资源拷贝到此目录中。
Intermediate/ 存放临时文件的路径。版本库中可忽略
Saved/ 编辑器自动存贮的一些文件,以及日志信息等。版本库可忽略
Source/ C++代码存放路径。
HelloUE4.sln 自动生成的Visual Studio工程文件,可以点击UE4编辑器的文件菜单下“生成Visual Studio工程”来生成,也可以在工程文件(*.uproject)的鼠标右键菜单中选择“Generate Visual Studio Project files”来生成。版本库中可忽略
HelloUE4.uproject UE4项目的工程文件,是json格式的文件。

Source目录

这里写图片描述

Source目录比较重要,这里单独说一下。目前Source目录下只有一个文件夹HelloUE4,和两个C#文件。这里的C#文件仅用于描述工程的编译构建信息,类似与Makefile或CMakeLists.txt,文件的格式为“工程名”+ “.Target.cs”。

一个UE4工程可包含若干个“子工程”(Module),子工程在工程文件(*.uproject)文件中定义:

{    "FileVersion": 3,    "EngineAssociation": "4.15",    "Category": "",    "Description": "",    "Modules": [        {            "Name": "HelloUE4",            "Type": "Runtime",            "LoadingPhase": "Default",            "AdditionalDependencies": [                "Engine"            ]        }    ]}

当前的工程只有一个子工程HelloUE4,如果需要多个子工程,可以在这里Modules属性下添加上引用,然后在Source目录里添加上工程文件夹和编译文件(*.Target.cs)。

需要注意的是,Source目录下还有一个”HelloUE4Editor.Target.cs”文件,该文件用于构建编辑器相关的代码。如果工程中存在扩展编辑的代码(也就是存在依赖UnrealEd的代码),需要放到Editor模块下,不能跟Runtime代码放一块,否则无法打包。关于Editor模块如何建立和使用,我们后面专门用一个章节来说明。

场景结构

静态结构

场景结构

在场景树的最顶层是关卡Actior——Home,其他的都Actor都必须方到关卡Actor内部。UE4的Actor也支持嵌套,而且场景树支持文件夹过滤器,可以将一组相似的Actor放到一个过滤器中。

运行时结构

场景结构

点击“播放”按钮,进入运行模式时,场景树会多出来很多东西。黄色名称的Actor是动态创建出来的。下面大致说一下动态创建出来的对象:

名称 描述
DefaultPawn 默认代表玩家的Actor
PlayerController 玩家的控制器。这里用于接收键盘输入而移动和旋转
PlayerCameraManager 玩家的相机管理器
PlayerState 存贮玩家的游戏内数据
GameModeBase 游戏模式。用于处理游戏玩法的逻辑
GameStateBase 游戏状态。用于记录游戏玩法相关数据
HUD 管理UI

Visual Studio 工程结构

工程结构

VS项目分为两个项目:UE4和HelloUE4。UE4是引擎源码,HelloUE4是我们自己创建的工程。这里,我们主要看我们自己工程的结构。

名称 描述
HelloUE4.h 预编译头文件,用于加快编译速度。HelloUE4目录下的所有cpp文件都必须包含该头文件,因此一些比较通用但是不会修改的代码也可以包含在这个文件中。
MyActor.h 我们上一节中创建的Actor类
HelloUE4.Build.cs 构建系统的描述文件。这里主要用于描述当前工程所依赖的库文件。
*.Target.cs 构建系统的描述文件。前面已经说过了
HelloUE4.uproject UE4工程文件。前面也说过了

本系列文章会和我的个人公众号同步更新,感兴趣的朋友可以关注下我的公众号:游戏引擎学习。扫下面的二维码加关注:

游戏引擎学习

转载于:https://www.cnblogs.com/ygxsk/p/7693966.html

你可能感兴趣的文章
特殊文件(下)
查看>>
ubuntu通过vmware与访问宿主的文件
查看>>
mysql 5.7 二进制安装方法
查看>>
244. Shortest Word Distance II
查看>>
385. Mini Parser
查看>>
React-组件的生命周期
查看>>
Git详解之四:服务器上的Git
查看>>
JavaScript 复杂判断的更优雅写法借鉴
查看>>
<mvc:annotation-driven/>浅析
查看>>
ArcEngine开发之自定义工具
查看>>
SQL视频总结
查看>>
P4878 道路修建-美国
查看>>
dp练习
查看>>
vim
查看>>
maze_travel的隐私声明
查看>>
对正则表达式又重新学了一遍,笔记方便以后查阅
查看>>
UIKit应用 - Swift 版本: 3.让UITableViewCell的背景色渐变
查看>>
Java反射
查看>>
building tool
查看>>
JS中for循环输出三角形
查看>>