虚幻5---第16部分---敌人(中)

虚幻5---第16部分---敌人(中)

Actor 组件(Actor Components)

------创建我们自己的自定义组件

重点与流程:

  1. 了解自定义组件,尝试从Actor组件派生。
  2. 创建Actor组件。添加生命值变量。
  3. 在敌人代码里添加自定义组件,然后构造它。
示例图

Widget 组件(Widget Components)

------为敌人创建血条

重点与流程:

  1. 创建控件蓝图,选择User Widget,里面添加进度条,设置好。
  2. 新建C++类,选择控件组件类。
  3. 在C++里添加Actor组件的属性变量,构造对应对象。新增UMG模块。
  4. 在敌人的C++添加控件组件,构造对象,代表生命条。
  5. 在敌人蓝图里面设置生命条。
示例图:

用户 Widget 类(User Widget Class)

------用于我们血条 Widget 的 C++ 类

重点与流程:

  1. 创建新的C++类,为健康条创建一个用户组件,创建用户控件类
  2. 在C+里添加健康条变量,并且将其绑定到蓝图变量健康条上,变量名字必须一致。
  3. 回到蓝图界面对比检查图表的类设置父类与设计器变量。
示例图:

设置生命值百分比(Setting the Health Percent)

------在 C++ 中访问血条 UserWidget

重点与流程:

  1. 在健康条组件代码里添加设置百分比函数。
  2. 构造设置该函数。
  3. 在调用这个函数之前,把健康条控件改成U健康条控件。
  4. 在敌人代码中设置默认的健康条。
示例图



伤害(Damage)

------虚幻引擎内置的伤害系统

重点与流程:

  1. 了解虚幻内置的伤害函数和对应参数。
  1. 在敌人代码里添加受到伤害函数。
  2. 在武器代码里添加造成伤害函数。设置好内容。
  3. 在属性组件代码里添加函数用于接收伤害和更新生命值变化。设置内容。游戏统计会确保我们的函数在收到伤害时被调用。
示例图:

自定义血条(Custom Health Bars)

------让 HUD 更有特色

重点与流程:

  1. 了解进度条的style样式选项。
  2. 下载和导入对应的生命条的.png文件。调整好它们的压缩设置。
  3. 设置好新的自定义进度条。
示例图:

敌人死亡动画(Enemy Death Animations)

------用于敌人死亡的动画

重点与流程:

  1. 选择想要的几个死亡动画。按照对应格式下载,再转换成带根骨的动画。导入到项目。
  2. 制作对应的动画蒙太奇。每部分命名。
示例图:

敌人死亡(Enemy Death)

------干掉几个傻瓜

重点与流程:

  1. 进入代码,在属性组件代码判断角色是否存活。
  2. 在武器里检查击中接口前调用造成伤害的函数。
  3. 在敌人代码里编写逻辑,选择死后播放蒙太奇动画
  4. 写死亡播放蒙太奇的函数。
示例图

死亡姿势(Death Poses)

------让敌人彻底倒地不起!

重点与流程

  1. 利用动画的最后一帧制作动画。
  2. 代码新增枚举变量,表示死亡状态。编写死亡状态的转换逻辑。
  3. 使用蓝图线程安全更新动画来访问蓝图动画。
  4. 混合每个死亡动画。
示例图




注意:

  1. 如果敌人一直重复同一个死亡姿势,可能是,动画蓝图里面在切换死亡姿势时,没有没枚举设值。

打磨敌人死亡效果(Polishing Enemy Death)

------对敌人死亡效果进行收尾优化

重点与流程:

  1. 在代码里编写关闭胶囊体碰撞的时机和逻辑。
  2. 在代码里编写敌人死亡后消失的时机和逻辑。
  3. 在代码里编写生命条显示的条件和消失的条件。
示例图



挑战16

  1. 尝试双持武器。
相关推荐
不想写代码的星星19 小时前
std::function 详解:用法、原理与现代 C++ 最佳实践
c++
樱木Plus3 天前
深拷贝(Deep Copy)和浅拷贝(Shallow Copy)
c++
blasit5 天前
笔记:Qt C++建立子线程做一个socket TCP常连接通信
c++·qt·tcp/ip
肆忆_6 天前
# 用 5 个问题学懂 C++ 虚函数(入门级)
c++
不想写代码的星星6 天前
虚函数表:C++ 多态背后的那个男人
c++
端平入洛8 天前
delete又未完全delete
c++
端平入洛9 天前
auto有时不auto
c++
郑州光合科技余经理9 天前
代码展示:PHP搭建海外版外卖系统源码解析
java·开发语言·前端·后端·系统架构·uni-app·php
feifeigo1239 天前
matlab画图工具
开发语言·matlab
dustcell.9 天前
haproxy七层代理
java·开发语言·前端