返回 导航

UE5

hangge.com

UE5 - 蓝图类的继承与转换详解1(函数继承、函数重写)

作者:hangge | 2025-08-21 09:39
    蓝图继承是指在 UE5 中,通过“继承父类蓝图”的方式,让子蓝图自动拥有父类中已定义的变量、函数、事件和组件。同时子蓝图可在此基础上增加新功能,也可重写(Override)父类中的虚函数或事件,实现多样化行为。下面我将通过样例演示函数的继承与重写。

一、函数继承与重写

1,函数继承

(1)在“内容浏览器”面板中新建一个“Actor”类蓝图并命名为“BP_Fruit

(2)在“BP_Fruit”蓝图中新建一个函数并命名为“SpawnParticle”。在“Spawn Particle”函数后添加“在位置处生成发射器”节点,同时使用“获取 Actor 位置”节点的“Return Value”引脚连接“Location"引脚。

(3)拖曳“Emitter Template”引脚到空白处后执行“提升为变量”菜单命令,新建一个变量。
提示:由于我们希望可以在函数外部自由设置变量,所以不可以执行“提升为局部变量”菜单命令。

(4)最后结果如下:

(5)回到“事件图表”面板,在“事件开始运行”节点后连接“Spawn Particle”函数。注意,要在“BP_Fruit”蓝图中操作,以便将设置应用到所有的子类。

(6)在“内容浏览器”面板中使用鼠标右键单击“BP_Fruit"”蓝图执行“创建子蓝图类”菜单命令。

(7)新建两个子类蓝图分别命名为“BP_Apple”和“BP_Banana

(8)打开这两个子类蓝图,将继承的父类变量“Emitter Template”分别设置为初学者内容包中的“P_Fire”和“的“P_Explosion

(9)编译并保存后拖曳“BP_Apple”蓝图和“BP_Banana”蓝图到关卡中,进入 PIE 运行模式后可以看到“BP_Apple” 蓝图播放了火焰粒子特效,“BP_Banana”蓝图播放了爆炸特效。这说明两个子类均继承了父类的函数,并且成功以不同的变量执行了蓝图。

2,函数重写

(1)进入“BP_Banana”蓝图,在“我的蓝图”面板中单击“重载"按钮,选择“Spawn Particle”函数。

(2)此时会进入“事件图表”面板,生成函数节点后还会生成一个“父类:SpawnParticle”节点。调用此节点时会调用父类中的内容,也就是播放爆炸特效。如果断开与父类的连接,那么在调用时就只会执行函数在这个子类中写下的内容,不会调用父类。

(3)这里我们断开与“父类:Spawn Particle”节点的连接,使用“打印字符串”节点连接“SpawnParticle”函数,设置“In String”为“这是一根香蕉

(4)编译并保存蓝图后进入 SIE 运行模式,“BP_Banana”蓝图没有播放爆炸特效,且左上方输出了“这是一根香蕉”字样,这说明已经成功重写了函数。
评论

全部评论(0)

回到顶部