项目中的墙体有生命值,人物则有生命值和伤害。
MCAttributeSet
头文件
首先是两个FGameplayAttributeData
的定义:

其中两个
static
函数是为了获取Attribute的Property,实现不贴了。我们也可以用引擎提供的宏来定义:
接下来是重写三个响应函数:

和一个委托,用于Actor血量低于0时,处理死亡事件:


实现
初始化

响应函数只实现了一个,在当前actor上应用了GameEffect后,如果改变了Health属性,那么判断Health值是否小于0,如果是,广播委托。

注意一定要写replication的生命周期控制:

网友评论