工程目录文件
.vs VS环境配置文件(不用管不要删)
Binaries 存放编译生成的结果二进制文件。该目录可以gitignore(可以忽略),每次都会生成
编译动态库 中间编译文件(虚幻按模块编译)(编译好的)
每个模块会产出一个动态库
当工程出了一些问题(热加载出问题),就把动态库全删掉重新生成
config 配置文件
content 内容文件夹,所有资源和蓝图等都在该目录里
intermediate 中间文件(gitignore),存放着一些临时生成的文件,有:
1.build的中间文件,.obj和预编译头等
2.UHT预处理生成的.generated.h/.cpp文件
3.VS.vcxproj项目文件,可通过.uproject文件生成编译生成的shader文件夹
4.AssetRegistryCache:Asset Registry系统的缓存文件
(Asset Registry可以简单理解为一个索引了所有uasset资源头信息的注册表)
(CachedAssetRegistry.bin文件也是如此)
saved 存储自动保存文件,其他配置文件,日志文件,引擎崩溃日志,硬件信息,烘培信息数据等。gitignore
source 源码文件夹(工程源码)
.sln VS启动文件
.uprojece
.VC.db
VS项目目录结构
1.Engine引擎源码文件(只读)(不完整),虚幻是开源项目我们可以直接在工程中看到引擎源码但是无法修改。如需修改需下载Git源码工程
2.Games项目工程文件(主要编写逻辑文件),我们的代码需要在此工程中编写。虚幻中采用了编译模块方式进行引擎构建,所以对于引擎来说,我们编写的内容只是一个模块,模块会被动态编译成库文件,加载到引擎中使用。Target.cs就是模块配置文件
3.Visualizers虚幻4.21加入的文件夹,VS编辑器配置文件
编译类型
| 状态 | engine | game | 其他 |
| debug(调试)(可查看信息更多,牺牲一些CPU和GPU事件来收集信息) | debug |
debug | 必须在编译器上加-debug参数才能反射查看代码更改 |
| debuggame(调试游戏) | release | debug | 适合只调试游戏代码 |
| development(开发)(一般用这个) | release | release | 允许编辑器发射查看代码更改 |
| shipping(发行)(性能最优) | release | release | 无控制台命令,统计数据和性能分析 |
| test(测试) | release | release | 启用了一些控制台命令,统计数据和性能分析 |
| 目标 | |
| 空白 | 不带编辑器的一个独立可执行版本,需要提前打包烘培内容资源 |
| editor(编辑器) | 直接在编辑器里打开游戏项目 |
| client(客户端) | 多人联机项目,生成客户端版本,需要提供<game>client target.cs文件 |
| server(服务器) | 多人联机项目,生成服务器版本,需要提供<game>server target.cs文件 |
命名规则
变量命名规则
1.模板类以T作为前缀,比如TArray,TMap,TSet
2.UObject派生类都以U前缀
3.AActor派生类都以A前缀
4.SWidget派生类都以S前缀(组件)
5.全局对象使用G开头,如GEngine
6.抽象接口以I前缀
7.枚举以E开头,结构体都是以ST开头
8.bool变量以b前缀,如bPendingDestruction
9.其他的大部分以F开头,如FString,FName
10.typedef的以原型名前缀为准,如typedef TArray FArrayofMyTypes;
11.在编辑器里和C#里,类型名是去掉前缀过的
12.UHT在工作的时候需要你提供正确的前缀,所以虽然说是约定,但你也得必须遵守(编译系统怎么用到那些前缀,后续再讨论)
UE遵循帕斯卡命名法则
虚幻里没有多继承,有接口
资源命名规则
| 类型 | 前缀 | 说明 |
| Level/Map | L_ | 关卡 |
| Blueprint | BP_ | 常规蓝图 |
| Material | M_ | 材质 |
| StaticMesh | S_ | 静态网格体 |
| SkeletalMesh | SK_ | 骨骼网格体 |
| Texture | T_ | 纹理 |
| ParticleSystem | PS_ | 粒子系统 |
| WidgetBlueprint | WBP_ | 组件蓝图 |
文件夹命名规则
|--项目名称
|-- Maps

本文介绍了虚幻引擎C++开发的基础知识,包括工程目录结构、命名规则、Actor相关概念、屏幕和控制台日志输出、自定义日志分类、以及UE基本数据类型。文章详细讲解了如何创建和管理Actor,以及如何使用UE_LOG进行日志输出,同时提到了字符串类型如FString、FName和FText的使用以及容器类型TArray、TMap和TSet的操作。此外,还介绍了文本编码和本地化处理的初步步骤。
2986

被折叠的 条评论
为什么被折叠?



