欢迎光临散文网 会员登陆 & 注册

虚幻引擎C++学习笔记(一)

2022-02-18 04:28 作者:HarrickHeng  | 我要投稿

笔记课程为国外UE教程视频:UdemyUnrealEngineCTheUltimateShooterCourse

一、开发准备

硬件选择(仅参考)

CPU:i7-6700k、AMD 3950X

固态硬盘:250G~500G以上

内存:16G~32G以上

IDE选择

Windows->Visual Studio

Mac->Xcode/Visual Studio

Visual Studio设置

1.将解决方案配置显示完全:工具-自定义-命令选项卡-工具栏下拉列表(ToolBar)-找到标准配置和解决方案配置(Standard)-修改工具栏宽度。

2.关闭不必要的底部窗口:引擎工作时仅保留输出窗口,关闭其他例如错误列表窗口。

3.排除错误列表的干扰:工具—选项—项目与解决方案—禁用"若生成完成时有错误,则始终显示错误列表"。

4.禁用非活动块干扰:工具—选项—文本编辑器—C/C++—查看—非活动代码—显示非活动块—False。

5.不显示无关文件夹:工具—选项—文本编辑器—C/C++—高级—浏览/导航—禁用外部依赖项文件夹—True。

6.关闭编辑继续功能:工具—选项—文本编辑器—调试—常规—禁用"启用编辑并继续"。

7.代码行数显示:工具—选项—文本编辑器—C/C++—常规—开启“行号”。

二、安装引擎

引擎下载地址

https://www.unrealengine.com/zh-CN/download

版本选择

最好跟随所学教程的版本,项目开发中也不要轻易升级版本,避免不必要的错误冲突。

三、与引擎相关的C++基础概念

面向对象:继承

1.子类继承于父类,拥有父类的方法、变量。

2.子类也可以有多个父类,为多重继承。多重继承下的子类同时拥有每个父类的方法、变量。

3.如果一个指向父级的指针变量被创建,那它也可以指向这个父类的所有子孙类。

4.子类可以重写他继承的函数方法。

面向对象:多态

1.子类所继承的方法被调用时,总会得到你所调用的子类版本的方法,即使调用方法的指针变量是指向父类的。

2.使用cast类型强转(成功后)可将指定的子类对象正确传递给别的对象。

引擎的基本对象(Is A)

基本对象组成的族谱:Object—Actor—Pawn—Character(从左到右为父到子)。

Object:仅能存储数据,无法被放置在Level中。

Actor:可以被放置在Level中,拥有视觉表现,例如3D模型。

Pawn:可以被控制器(例如键盘输入、鼠标点击等)控制。

Character:拥有移动组件(movement component),而移动组件则具有跳跃、游泳、飞行与其他角色交互等功能。

在基础对象的基础上,引擎派生出更多的其他对象。

引擎的嵌套结构(Has A)

虚幻引擎嵌套结构为:Package—World—Level—Actor—Actor Component(从左到右为外到内)。

独立与嵌套外的类:Mesh模型、Textures纹理。

四、反射机制

C++没有内置的反射机制,但虚幻引擎有自己的反射系统。它将C++的数据与编辑系统合并,将其暴露在蓝图(引擎自带的可视化脚本系统)中以及进行垃圾回收。

虚幻引擎有一套UHT(Unreal Header To)系统。项目编译时,程序如果读取到你标记的特殊宏后,会在标记行生成额外的代码,而UHT系统则会通过反射机制,将标记行的次行信息反射到生成的代码中。

蓝图只有获取了以上加入反射机制的信息,才能将我们标记的信息数据暴露出来。

垃圾回收则通过所标记的类,来判断该类是否正在被引用(引擎为分帧判断),从而将未被引用的类销毁,释放内存。


虚幻引擎C++学习笔记(一)的评论 (共 条)

分享到微博请遵守国家法律