关于 UE中 父类和 子类 函数互相调用的方法

背景: 在UE4 中, 有时候需要通过构建一个父类。构建通用的一些函数和变量。方便子类在构建的时候不用重复去构建。

一, 父类中构建 函数。

在父类中构建一个函数名字Func1。 可以没有实现。

在子类中 函数列表(重载下) 选择 函数名称,可以在子类中 对此函数重构。

父类中:在 初始构建的时候 Construct 中调用一个函数 比如 Init_Parent

在子类中 可以 对Ini_Parent 重载。 这样子类在构建的时候,就会默认的执行 在父类中已经提前定义好的函数Init_Parent 。

二, 父类 和子类 begin play 的用法

(1) 父类(基类)BP_Common 中 begin play 打印信息。
在这里插入图片描述
(2) 子类 中 也调用begin play ,
在这里插入图片描述
第一种情况, 直接 调用 begin play ,发现只会 打印 这是子类的 begin play
在这里插入图片描述
第二种情况:
在这里插入图片描述
子类调用 父类的函数 然后 调用本地的。
会先执行父类的 begin play 再执行 子类的begin play

在这里插入图片描述
注意打印显示的顺序,屏幕上 越靠上, 执行的越往后,
所以 可以判定: 对于 子类和 父类中 函数的重载。

3, child actor 来进一步阐述 两者之间的关系

在这里插入图片描述
(1)当前蓝图是 BP_All ,里面的其中一个 childActor 是 BP_ChildTest , BP_childTest 的基类是 BP_Common

(2) BP_Common 中有一个函数 Ini_parent :
在这里插入图片描述

子类中 调用的情况是:

在这里插入图片描述
我们在子类中进行 函数的重载,会发现 后面自动加上了 橙黄色部分, 打印的时候,
在这里插入图片描述
先打印了 父类的 再打印了 子类的。

如果把 子类重载里面的
在这里插入图片描述

此时 只会执行父类里面的 函数。

补充 执行的前提是:

在BP_All 中 引用了 如下:

在这里插入图片描述
注意:
childActor 里面 实际上 是 BP_ChildTest . ,但是在转换的时候 是转换成了父类,通过父类的函数去执行子类的函数。

这样执行的好处是: 出现一种情况:

childActor 里面 出现了 大量的 BP_ActorX 。 如果要转换实际的类型 再执行函数,泰国繁琐。、
通过直接调用 基类的方式, 可以批量的 调用 子类里面的函数。

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值