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、打印,先执行子类方法,然后执行父类方法

相关推荐
zhangzhangkeji2 天前
UE5线程进阶(3-1):
ue5
zhangzhangkeji2 天前
UE5线程进阶(2-3):enum ENamedThreads命名空间 :: Type : int32 { RHIThread = 0 } 是渲染硬件接口线程
ue5
zhangzhangkeji3 天前
UE5线程进阶(2-1):枚举类EAsyncExecution,作业类TAsyncRunnable、TAsyncQueuedWork,及全局线程函数 Async(..),及线程调用的 4 种方法总结
ue5
zhangzhangkeji4 天前
UE5线程进阶(1):
ue5
yblackd7 天前
UnrealEngine Win风格 窗口选择打开文件
c++·ue5·虚幻
AI视觉网奇7 天前
ue 推送直播流 推流 linux 实战
笔记·学习·ue5
郁闷的网纹蟒8 天前
虚幻5---第16部分---敌人(中)
开发语言·c++·ue5·游戏引擎·虚幻
爱搞虚幻的阿恺8 天前
Niagara粒子系统-超炫酷的闪电特效(第一期 粒子的朝向与对齐)
游戏·ue5·游戏引擎·虚幻
暮志未晚Webgl8 天前
UE5实现游戏中英文切换的本地化功能
游戏·ue5
郁闷的网纹蟒8 天前
虚幻5---第15部分---宝藏(掉落物)
开发语言·c++·ue5·游戏引擎·虚幻