主角或敌人都能用的插件,复用性很高
首先创建以下插件、接口、类型文件
两个枚举中的参数名称,E_DamageResponse区分是各个伤害后的反应,比如不同伤害造成的动画或粒子特效等的不同,E_DamageType是伤害类型,有各种伤害类型,比如近距离伤害和爆炸伤害
创建结构体,S_DamageInfo
然后创建BPC_DamageSystem插件,并编写代码
Heal函数为治疗函数
TakeDamage函数是实现伤害和判断伤害类型等
CanbeDamage宏中的代码,IsBlocking布尔变量我默认是True
三个事件分发器是为了后续可以在玩家或敌人蓝图中编写死亡,阻挡,被攻击的反应 代码,因为这几部分在敌人和主角中都不太一样,所以后续在人物蓝图中再编写
再到主角蓝图中添加最开始创建的接口BPI_Damageable,并在左侧添加选项中添加我们创建的BPC_DamageSystem插件(图中没有标明)
接口中的函数如图所示
之后在人物蓝图中编写接口函数
之后在攻击逻辑中调用TakeDamage函数
至此主角蓝图已经编写完毕
之后在敌人蓝图添加接口和插件,再把接口中的函数照上面的主角蓝图写一下就行了,至此就完成了正常的攻击伤害逻辑,这个接口还有很多功能,在所创建的变量中也能看出来