UnLua实现继承

一、在蓝图中实现继承

1、创建父类,并绑定Lua脚本

2、创建子类蓝图,如果先创建的子类,可以修改父类继承

注意,提示选择继承父类的接口!
二、在Lua中实现继承

1、在父类Lua脚本中实现函数

BP_CharacterBase.lua

lua 复制代码
function BP_CharacterBase_C:StartFire()
    print("BP_CharacterBase_C:StartFire")
end

2、在子类中设置父类文件名,重写父类函数,并显示调用父类函数

BP_Player.lua

lua 复制代码
local BP_Player_C = UnLua.Class("BP_CharacterBase")	--注意传入的是文件名字

function BP_Player_C:StartFire()
	print("P_Player_C:StartFire")
	self.Super:StartFire()
end

3、调用函数

BP_PlayerController.lua

lua 复制代码
function BP_PlayerController_C:Fire_Pressed()
	print("BP_PlayerController_C:Fire_Pressed")
	self.Pawn:StartFire()
	--如果父类有继承接口,也可以用接口的调用方法
	local BPI_Interfaces = UE.UClass.Load("/Game/ShootingScripts/Blueprint/Common/BP_Interfaces.BP_Interfaces_C")
	BPI_Interfaces.StartFire(self.Pawn)
end

4、打印,先执行子类方法,然后执行父类方法

相关推荐
流行易逝14 小时前
28.UE5游戏框架,事件分发器,蓝图接口
ue5
刘好念16 小时前
[UE5学习] 一、使用源代码安装UE5.4
ue5·游戏开发
书鸢123616 小时前
UE5材质混合模式
ue5
书鸢123619 小时前
UE5中T_noise 纹理的概述
ue5
我救我自己20 小时前
UE5 slate BlankProgram独立程序系列
java·开发语言·ue5
DBBH2 天前
UE5材质篇5 简易水面
ue5·材质
心怀梦想的咸鱼2 天前
UE5 第一人称射击项目学习(四)
学习·ue5
UTwelve3 天前
【UE5】使用基元数据对材质传参,从而避免新建材质实例
ue5·材质
UTwelve3 天前
【UE5】在材质中计算模型在屏幕上的比例
ue5·材质
心怀梦想的咸鱼4 天前
UE5 第一人称射击项目学习(二)
学习·ue5