创建蒙太奇动作的时候一定要save all !!!
每打死一个怪物掉落武器
新建一个actor类BP_Drop
新建一个枚举类,重命名为E_PropType
录入一些枚举类型
新建一个结构体蓝图
创建完结构体蓝图之后,就可以创建data table了,选择刚刚做好的结构体,重命名为DT_Prop
往DT_Prop里放东西
在BP_Monster脚本里写一个 新函数DropProp
在BP_Drop里新建一个数据结构变量
编译保存上面的变量以后,刷新一下生成Drop的函数,可以得到一个drop的输入引脚
在BP_Drop中写
拾取并装备道具
在BP_Player中新建一个Equip函数,并且有一个输入引脚是结构体数据类型Prop,在Equip函数中新建一个map变量,重命名为EquipProps
关联容器map(映射)
关联容器通过key存储和读取元素;
它提供一对一的数据处理能力;
第一个(键) | 第二个(值) |
关键字,每个关键字在map中是唯一的 | 关键字的值 |
1 2 3 4 5 | a b c d e |
(结构体也太好用了!!!)
解决 拿到武器会把人撞飞的bug 的方法
在BP_player中写开始重叠函数
新建一个结构体数据,写不兼容的武器DS_Incompatibles
通过这个结构体,新建一个数据表DT_Incompatible
新建一个SD_Prop的数组变量Props
在BP_Player中写
技能类
之前完成了普通类的攻击,现在建立技能类的攻击(分为 近战的 和 远程的)
新建一个枚举类,重命名为E_SkillType
在SD_Skill中,新建一个类型
创建两个远距离的攻击动画蒙太奇,save all
在初始化技能函数里存储 技能
绑定技能1和技能2的按键
(技能CD:CD是指物品或技能的冷却时间(Cool Down Time的缩写),指的是释放一次技能(或使用一次物品)到下一次可以使用这种技能(或使用这个物品)的间隔时间。 )
整理普攻连招的节点,选中技能cd相关节点,折叠为函数,并重命名为CheckSkillCd,在细节面板里勾选为纯函数
新建一个函数UseSkill,把相关节点复制黏贴出来
更正生成怪的时候会出现的报错
在BP_Monster中新建一个标签变量
在Build Monster中给生成的怪物放入标签
一开始初始化的怪物也带有标签吗,在BP_Monster中
更正销毁道具时候没来得及销毁actor已经变到下一个道具而被销毁的报错
(actor变得太快的错,延迟一下)
远程技能
在技能的结构体上又加了四栏 (是否是远程、子弹粒子、射程、伤害范围)
在动画中找到一个远程技能攻击的动画,右键生成蒙太奇,save all
在DT_skill数据列表中做一些调整修改
在use skill函数中添加一个是否远程的条件,并且连上伤害范围节点
新建一个蓝图类,如图创建好法术子弹,重命名为BP_Bullet,如下设置
在BP_Bullet中新建两个变量:Skill和Target(用来记录远程技能发射时,命中的目标)
在BP_Player中,书写函数Find Skill target,提升一个局部变量变量Recent_Monster
局部变量:只在此函数内存在,外部不存在
新建一个actor类蓝图BP_Bullet
子弹蓝图里设置超出距离销毁(tick后续断开了),使用生命周期的方法控制子弹的寿命
spawn BP_Bullet的skill为current skill
如果发射出去的光波,没有按预期飞射出去,可以改小碰撞体的大小,拉长距离
spawn BP_Bullet的skill为current skill
新建一个接口,重命名为I_Interface,打开I_Interface
在BP_Bullet和BP_Player中的类设置里导入接口
双击左边的接口I_Damage分别做如下操作
BP_Bullet
BP_Player
将BP_Monster改为接入接口