虚幻引擎C++学习笔记(一)
笔记课程为国外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系统则会通过反射机制,将标记行的次行信息反射到生成的代码中。
蓝图只有获取了以上加入反射机制的信息,才能将我们标记的信息数据暴露出来。
垃圾回收