虚幻C++入门个人笔记(1)——一些基础、UE_LOG、TArray、翻译转换

工程目录文件

.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

        |-- Textures

        |-- Blueprints

        |-- Effects              (particle)

        |-- Animations

        |-- Sounds

        |-- Sources

我们建议,在引擎根目录进行细致的命名分化。以打到高效管理资产的目的,命名应遵循清晰,准确,简短的描述分类内容。尽量不要使用模糊描述。项目名称作为最顶层文件夹名称

命名规范网站

https://github.com/uejoy/ue4-style-guide

Actor相关

UE游戏世界中存在元素的根源,用来表示世界中的任何物体的高级抽象类,由Actor进行创建,Component进行行为组件,完成整个游戏世界的元素展示

Actor是一个载体,Component组件是能力

Acotr的创建方式为两种,第一种为直接在场景中编辑拖拽(静态创建),优势无需编码,更加直观简单,缺点可能影响游戏启动速度,增加场景构建负担。第二种为通过编码动态进行生成(动态创建,例如扔手雷)相对于前者复杂度上升,但可控性更强,动态生成的Actor会持有有效的操作指针,我们可以根据实际情况进行生成,更加灵活

SpawnActor函数

在蓝图中我们借助SpawnActorOfClass进行动态生成Actor,在C++中我们需要通过UWorld指针进行创建。在UWorld类中,我们可以找到多个生成Actor的函数。对于重载函数,我们根据特定的情况进行选择即可。SpawnActor函数是个工厂函数,下面地址中可以查到UWorld的相关API

http://api.unrealengine.com/INT/API/Runtime/Engine/Engine/UWorld/index.html

API——用户接口手册(描述类的结构)

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值