虚幻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. 尝试双持武器。
相关推荐
lsx2024067 分钟前
Vue3 安装指南
开发语言
skywalk81638 分钟前
g4f JavaScript调用报错问题解决
开发语言·javascript·ecmascript
qqty121711 分钟前
基于python语言的网页设计(手把手教你设计一个个人博客网站)
开发语言·python
耿雨飞17 分钟前
Python 后端开发技术博客专栏 | 第 02 篇 函数式编程与 Python 魔法 -- 闭包、装饰器、高阶函数
开发语言·python·装饰器·高阶函数·闭包
网域小星球19 分钟前
C++ 从 0 入门(五)|C++ 面试必知:静态成员、友元、const 成员(高频考点)
开发语言·c++·面试·静态成员·友元函数
|_⊙20 分钟前
C++11 右值引用
开发语言·c++
李昊哲小课25 分钟前
WSL Ubuntu 24.04 GPU 加速环境完整安装指南
c++·pytorch·深度学习·ubuntu·cuda·tensorflow2
Byte不洛27 分钟前
C++继承详解(菱形继承与虚拟继承)
c++·继承·面向对象·菱形继承·虚拟继承
ftpeak41 分钟前
Python win32底层开发从入门到实战
开发语言·python·win32api
阿正的梦工坊43 分钟前
JavaScript 函数组合(Compose & Pipe)详解
开发语言·javascript·网络