72. UE5 RPG 实现召唤技能数量的限制,并优化技能相关

在上一篇文章里,我们实现了召唤技能,并且能够无限的召唤。所以,这属于一个bug,我们不能无限制的去召唤,这会影响游戏的体验。所以,在这篇里面,我们实现一下对召唤物数量的限制,并优化一些相关的内容。

优化召唤物的朝向

首先,我们将召唤物的朝向修改一下,不想让召唤出来的怪物都是固定的朝向,而是根据召唤者的位置,让它的后背朝向召唤者。我们可以获取召唤者的位置到召唤物的方向,来设置召唤物的朝向。
在这里插入图片描述

添加相关代码

我们接下来,想实现在召唤师召唤了一定数量的仆从后,将不再继续召唤仆从,转而使用攻击技能攻击玩家。那么,它就需要拥有两个技能,一个攻击技能和一个召唤技能。
要区分触发的技能,我们需要给它设置不同的标签,攻击的标签现在是Attack,那么我们需要增加一个召唤技能触发的标签。
我们通过代码再添加一个标签

FGameplayTag Abilities_Summon; //召唤技能激活标签

然后注册到标签管理器,这样在代码中和UE里面都能够使用标签

	GameplayTags.Abilities_Summon = UGameplayTagsManager::Get().AddNativeGameplayTag(FName("Abilities.Summon"),FString("召唤技能标签"));

然后我们在角色基类上面添加一个属性,用于记录当前角色拥有的仆从数量

	UPROPERTY(BlueprintReadOnly, Category="Combat")int32 MinionsCount = 0; //仆从数量

有了属性,我们需要添加一个获取数量的函数,这个函数添加在接口里,我们在战斗接口添加一个获取仆从数量的函数

	UFUNCTION(BlueprintNativeEvent, BlueprintCallable)int32 GetMinionCount(); //获取角色拥有的仆从数量

在角色基类里覆写它

virtual int32 GetMinionCount_Implementation() override;

接着我们增加一个可以增加仆从数量的函数,在战斗接口中创建

	UFUNCTION(BlueprintNativeEvent, BlueprintCallable)void IncrementMinionCount(const int32 Amount); //设置角色仆从的增长数量,负数为负增长

然后在角色基类中覆写

virtual void IncrementMinionCount_Implementation(const int32 Amount) override;

在cpp中,通过传入的数字去修改仆从数量

void ARPGCharacter::IncrementMinionCount_Implementation(const int32 Amount)
{MinionCount += Amount;
}

创建新的行为树和任务

上面,我们增加一些代码,用来实现需求,可以获取也可以设置角色所拥有的仆从的数量。我们还需要创建一个新的行为树,用于修改召唤师敌人的AI逻辑,然后增加一个新的任务,在里面实现是使用召唤技能增加仆从还是使用攻击技能攻击玩家。
我们首先将之前制作的行为书复制一份去修改
在这里插入图片描述
设置好用于元素师专用的行为树
在这里插入图片描述
然后将萨满使用的行为树修改掉
在这里插入图片描述
接着在数据里面给元素师类型的数据添加上攻击技能,这样,在通过标签触发技能的时候,攻击技能就可以通过Attack标签触发,召唤技能可以通过Summon标签触发
在这里插入图片描述
我们将召唤技能的标签修改成召唤标签
在这里插入图片描述
准备工作完成,接下来,我们将修改行为树,我们需要将行为树中的攻击任务修改掉,将其修改成能功判断使用召唤技能还是攻击技能
在这里插入图片描述
接下来,我们复制一个攻击任务,在此基础上扩展
在这里插入图片描述
命名为BTT_Attack_Elementalist
在这里插入图片描述
我们在任务里面新增两个属性标签,一个召唤激活标签,用于激活召唤技能使用,另一个是技能标签,我们通过逻辑修改,激活时,使用它去激活
在这里插入图片描述
我们修改逻辑,增加对于召唤师仆从的数量进行判断,如果小于1, 将进行再次召唤
在这里插入图片描述
true分支是激活召唤技能,false是不需要召唤,那么将使用攻击技能
在这里插入图片描述
最后,激活技能使用AbilityTag去激活
在这里插入图片描述
以下是完整节点
在这里插入图片描述
如果需要修改剩余仆从数量继续召唤的值,我们可以创建一个变量,在行为树中去修改
在这里插入图片描述
接着进入行为树中,将之前的攻击节点替换掉,并修改配置项
在这里插入图片描述
接着,我们进入召唤技能蓝图,在召唤技能蓝图里,我们在每生成一个仆从后,将角色仆从数量加1
在这里插入图片描述
那么,如何实现仆从死亡时,减少数量呢,我们添加监听事件,监听仆从的销毁事件,在其被销毁掉时,将仆从数量减1
在这里插入图片描述
然后绑定销毁事件,在销毁事件触发时,减少一个数量
在这里插入图片描述
接着就可以运行效果,如果萨满能带着五个小弟干你,证明没有问题
在这里插入图片描述
当然,你还要测试将它小弟都解决以后,能不能重新召唤。贴一下完成召唤技能节点
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/30080.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

华为---- RIP路由协议基本配置

08、RIP 8.1 RIP路由协议基本配置 8.1.1 原理概述 RIP(Routing Information Protocol,路由协议)作为最早的距离矢量IP路由协议,也是最先得到广泛使用的一种路由协议,采用了Bellman-Ford算法,其最大的特点就是配置简单。 RIP协议要求网络中…

C++240618

1> 思维导图 2> 完善对话框,点击登录对话框, 如果账号和密码匹配,则弹出信息对话框,给出**提示”登录成功“** ,提供一个 **OK按钮**,用户点击**OK后**,**关闭登录界面**, 跳转…

C语言——扫雷小游戏

扫雷小游戏: 游戏最终效果: 1.先写一下游戏开始的简单界面。 用一个函数来写一下 void menu() {printf(" ---------------------------- \n");printf("| 1.play |\n");printf("| 0.exit …

SSM图书借阅管理系统-计算机毕业设计源码06780

摘 要 大数据时代下,数据呈爆炸式地增长。为了迎合信息化时代的潮流和信息化安全的要求,利用互联网服务于其他行业,促进生产,已经是成为一种势不可挡的趋势。在图书馆的要求下,开发一款整体式结构的图书借阅管理系统&a…

valgrind工具的交叉编译及使用

一 概述 valgrind是一款非常好用的工具,用于检测内存泄漏等,这里讲述如何将其交叉编译到arm开发板及如何使用 【C/C 集成内存调试、内存泄漏检测和性能分析的工具 Valgrind 】Linux 下 Valgrind 工具的全面使用指南 - 知乎 (zhihu.com) valgrind: fai…

Python武器库开发-武器库篇之文件上传漏洞扫描器(六十二)

Python武器库开发-武器库篇之文件上传漏洞扫描器(六十二) 文件上传漏洞简介以及危害 文件上传漏洞是指在网站或应用程序中,攻击者可以通过合法的文件上传功能,由于对用户上传的文件没有进行严格的验证和过滤,导致攻击…

机器学习_SVM支持向量机

引入:在面对线性可分时,即用一条直线就可以区分数据的时候,需要将直线放在距离数据点距离最大化的位置,这个过程需要寻找最大间隔,即为最优化问题。当数据点不能用一根直线区分——线性不可分,就需要用核函…

免费Syslog日志接收工具

如果您想知道您的网络中发生了什么,以便洞察潜在的威胁并在它们变成攻击之前阻止它们,那么您需要查看您的日志。Syslog日志是网络设备、操作系统和应用程序生成的一种重要日志数据,通过有效地收集和监视Syslog日志,企业可以及时发…

设计模式(七)创建者模式之建造者模式

这里写目录标题 概述需求需求类图BikeBuilderMobikeBuilderOfoBuilderDirectorClientClient优缺点使用场景 模式扩展ComputerClient创建者模式对比工厂方法模式VS建造者模式抽象工厂模式VS建造者模式 总结 概述 建造者模式又叫生成器模式,是一种对象构建模式。它可…

Vue3中的常见组件通信之插槽

Vue3中的常见组件通信之插槽 概述 ​ 在vue3中常见的组件通信有props、mitt、v-model、 r e f s 、 refs、 refs、parent、provide、inject、pinia、slot等。不同的组件关系用不同的传递方式。常见的撘配形式如下表所示。 组件关系传递方式父传子1. props2. v-model3. $refs…

音频处理软件adobe audition使用教程

教程1笔记 基本操作 点击文件-》新建-》多轨会话: 编辑-》首选项,设置自动保存时间: 导入素材,文件-》导入素材,或者直接拖动进来文件! 导出多轨混音: 更改为需要导出的格式wav,mp3等格式&am…

矿用行程位移传感器传感器ZE0701-06CU

矿用行程传感器概述 矿用行程传感器是一种专为煤矿等特定环境设计的传感器,用于监测和测量设备或部件的位移量。它们通常用于液压支架、千斤顶、掘进机等矿山设备中,帮助监测和控制设备的运动状态,以确保安全和高效的生产。 定义和功能 矿用…

微信小程序入门1

什么是微信小程序? 与传统的原生应用相比,微信小程序是一种全新的连接用户与服务的应用,它可以在微信内被便捷地获取和传播,同时具有良好的用户体验。微信小程序是运行在微信中的应用,是一种不需要下载即可使用的应用…

食品企业仓储式批发零售一体化解决方案

食品企业需要有效应对日益复杂的市场挑战和消费者需求的快速变化的挑战并提升市场竞争力,仓储式类的批发零售一体化需求应运而生。这一全新的商业模式不仅整合了传统的批发和零售模式,还优化了供应链管理和客户体验,成为食品行业发展的新引擎…

哈希的基本原理

目录 一.哈希概念 二.哈希冲突 三.哈希函数 四.哈希冲突解决 一.闭散列(开放寻址法) ①插入: ②查找: ③删除: 代码测试: 二.开散列(拉链法) ①插入: ②查找: ③删除: 代码测试&a…

Linux终端玩转bastet俄罗斯方块小游戏

Linux终端玩转bastet俄罗斯方块小游戏 一、bastet小游戏介绍1.1 bastet小游戏简介1.2 项目预览 二、本次实践介绍2.1 本地环境规划2.2 本次实践介绍 三、检查系统镜像源3.1 检查系统镜像源3.2 更新软件列表3.3 查询软件 四、安装bastet小游戏4.1 安装bastet4.2 启动bastet游戏 …

基本公式汇总

高等数学公式汇总 一、三角函数公式 1、特殊值 2、二倍角和差公式 1)正余弦和差公式 2)正切和差公式 3)积化和差 4)和差化积 3、平方和公式 4、倍角公式 5、半角公式 6、万能公式 7、辅助角公式 二、反三角函数公式 1、余角关…

宁德时代华北首座电池工厂在北京开工

6月18日,由宁德时代与北汽集团、京能集团、小米集团等共同投资建设的北京时代电池基地项目开工仪式在北京举行。 北京市相关政府代表,宁德时代董事长兼CEO曾毓群,北汽集团董事长张建勇,京能集团副总经理张凤阳,小米集…

GaussDB技术解读——GaussDB架构介绍(五)

GaussDB架构介绍(四)从云原生关键技术架构&关键技术方案两方面对GaussDB云原生架构进行了解读,本篇将从关键技术方案的事务存储组件、SQL引擎组件、DCS组件、实时分析组件等方面继续介绍GaussDB云原生架构。 目录 事务存储组件 1、本地…

NPDP含金量、考试内容、报考要求、适合人群?

01.NPDP核心价值解读 NPDP认证的核心价值在于整合产品开发管理的理论与实践,包含新产品开发策略、研发流程管理、市场研究、销规划、团队管理、项目管理等等,理论体系和知识内容穿插在产品发展的全过程。 对于职场打工人来说,拥有NPDP证书证…