90天入门UE引擎开发--学习日记(40/100)

创建蒙太奇动作的时候一定要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改为接入接口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值