Contents

蓝图的分类

蓝图的分类

上期视频我们讲解了蓝图的可视化编程的目的和意义,本期视频将正式跨入蓝图的理论学习,今天所讲的是蓝图的类型。

https://papalqiblog.oss-cn-beijing.aliyuncs.com/blog/Pasted%20image%2020220827122913.png https://papalqiblog.oss-cn-beijing.aliyuncs.com/blog/Pasted%20image%2020220827124455.png

Level Blueprint

第一个蓝图类型是关卡蓝图Level Blueprint,它并不能在资源管理器中进行创建,强制和一个关卡level绑定,实际上一个实例化的蓝图对象。我们可以在这个位置打开我们的蓝图关卡。

  1. 每个关卡都有自己的关卡蓝图,可以引用和操纵关卡内的Actor。
  2. 可以引用场景关卡里面的实例,这是蓝图类做不到的

https://papalqiblog.oss-cn-beijing.aliyuncs.com/blog/Pasted%20image%2020220827121707.png

Blueprint Class

https://papalqiblog.oss-cn-beijing.aliyuncs.com/blog/Pasted%20image%2020220827123311.png

第二种叫做Blueprint Class,叫做蓝图类,它类似于一般编程概念里面面向对象的类(class)。我们的打交道的大部门都是这种类型。 https://papalqiblog.oss-cn-beijing.aliyuncs.com/blog/Pasted%20image%2020220827122814.png 它跟我们Gamplay,也就是游戏逻辑有很深的绑定关系,因此我们要完全弄清楚这里面的所有概念还是要花一些时间的。 https://papalqiblog.oss-cn-beijing.aliyuncs.com/blog/Pasted%20image%2020220827121800.png https://papalqiblog.oss-cn-beijing.aliyuncs.com/blog/Pasted%20image%2020220827121628.png

Widget Blueprint

Widget Blueprint是用来做UI的界面显示

https://papalqiblog.oss-cn-beijing.aliyuncs.com/blog/Pasted%20image%2020220827124838.png

蓝图库

蓝图的库主要分为两种,一种是宏库,一种是函数库

1. 蓝图宏库,一组自包含的带节点的集合,宏的特点就是不需要编译,仅仅使用节点替换,就好像你复制粘贴宏所代表的集合到了新的使用处,和C++的宏机制很像。我们其实经常使用但是不自知for each
2. 函数库。可以类比成C++的全局函数。这些对你的实现功能没有任何影响,但是对你的多人合作和蓝图维护是非常重要的。
	- 编程概念里面很重要的一条就是不要重复你自己,有时候你想复用一个功能,你是通过复制来完成的,类似于排比句,这对实现功能当然没有任何影响,但是如果你想重构和改变之前的逻辑将会变成一个体力活,并且很容易出错。为了在长代码中实现更好地代码复用,提升可读性,提升可修改的能力,将一整块的逻辑抽象成函数是非常必要的

https://papalqiblog.oss-cn-beijing.aliyuncs.com/blog/Pasted%20image%2020220827125137.png

蓝图接口

第五个类型是蓝图接口:它提供一个通用的编程接口,定义了一组拥有这个接口的蓝图类需要实现的函数的名字,仅仅包含名字而不是实现。主要的作用是对逻辑的剥离,使类之间降低耦合性

蓝图的枚举结构体

枚举类型,是用户定义的若干枚举常量的集合。虽然我们可以直接使用1234代表不同的类型,但是可读性和维护性很差,枚举就相当于助记符,用来帮助我们标识和记忆。

而结构体是一个由程序员定义的数据类型,可以容纳许多不同的数据值在一个结构里。

https://papalqiblog.oss-cn-beijing.aliyuncs.com/blog/Pasted%20image%2020220827125510.png

其他的蓝图类型

其他类型,例如动画蓝图,[[Niagara]]编辑器,材质编辑器等等,虽然都拥有是和蓝图一样可视化的连线逻辑,但是有的比较特殊,有的是底层根本不是运行的相同的虚拟机,因此等到我们真正遇到的时候我们再来详细讨论。