当前位置: 首页 > news >正文

RPG38.角色受击

1.创建一个GA,用于设置角色的受击

创建蒙太奇,设置插槽

然后进入GA_Enemy_MeleeAttack,敌人的攻击。当enemy攻击命中player后,将发送对应tag激活ga。

然后打开DA_PlayerStartUpAbilities

2.玩家受击时的反应

先打开玩家的骨骼

3。打开XMBWarriorFunctionLibrary.h

//player受到打击时,确定打击的方向从而确定受击蒙太奇UFUNCTION(BlueprintPure, Category = "XMBWorrior|FunctionLibrary")static FGameplayTag ComputeHitReactDirectionTag(AActor* InAttacker, AActor* InVictim, float& OutAngleDifference);

FGameplayTag UXMBWarriorFunctionLibrary::ComputeHitReactDirectionTag(AActor* InAttacker, AActor* InVictim,float& OutAngleDifference)
{check(InAttacker && InVictim);const FVector VictimForward = InVictim->GetActorForwardVector();const FVector VictimToAttackerNormalized = (InAttacker->GetActorLocation() - InVictim->GetActorLocation()).GetSafeNormal();const float DotResult = FVector::DotProduct(VictimForward, VictimToAttackerNormalized);OutAngleDifference = UKismetMathLibrary::DegAcos(DotResult);const FVector CrossResult = FVector::CrossProduct(VictimForward, VictimToAttackerNormalized);if (CrossResult.Z < 0.f){OutAngleDifference *= -1.f;}if (OutAngleDifference >= -45.f && OutAngleDifference <= 45.f){return XMBGameplayTags::Shared_Status_HitReact_Front;}else if (OutAngleDifference < -45.f && OutAngleDifference >= -135.f){return XMBGameplayTags::Shared_Status_HitReact_Left;}else if (OutAngleDifference < -135.f || OutAngleDifference > 135.f){return XMBGameplayTags::Shared_Status_HitReact_Back;}else if (OutAngleDifference > 45.f && OutAngleDifference <= 135.f){return XMBGameplayTags::Shared_Status_HitReact_Right;}return XMBGameplayTags::Shared_Status_HitReact_Front;}

创建四个方向的tag

	ARPG_GRIVITY_API UE_DECLARE_GAMEPLAY_TAG_EXTERN(Shared_Status_HitReact_Front);ARPG_GRIVITY_API UE_DECLARE_GAMEPLAY_TAG_EXTERN(Shared_Status_HitReact_Left);ARPG_GRIVITY_API UE_DECLARE_GAMEPLAY_TAG_EXTERN(Shared_Status_HitReact_Right);ARPG_GRIVITY_API UE_DECLARE_GAMEPLAY_TAG_EXTERN(Shared_Status_HitReact_Back);
UE_DEFINE_GAMEPLAY_TAG(Shared_Status_HitReact_Front, "Shared.Status.HitReact.Front");UE_DEFINE_GAMEPLAY_TAG(Shared_Status_HitReact_Left, "Shared.Status.HitReact.Left");UE_DEFINE_GAMEPLAY_TAG(Shared_Status_HitReact_Right, "Shared.Status.HitReact.Right");UE_DEFINE_GAMEPLAY_TAG(Shared_Status_HitReact_Back, "Shared.Status.HitReact.Back");

4.为了更好地体现动画,进入ABP_XMBHero

http://www.lqws.cn/news/497377.html

相关文章:

  • 配置@为src
  • React Native【实用教程】(含图标方案,常用第三库,动画,内置组件,内置Hooks,内置API,自定义组件,创建项目等)
  • Java并发编程中高效缓存设计的哲学
  • 实验九:RIPv2协议配置与分析
  • MySQL 8.x配置MGR高可用+ProxySQL读写分离(二):ProxySQL配置MySQL代理及读写分离
  • CRC3校验算法
  • Stable Diffusion 项目实战落地:AI绘画与文案创作的魔法 第一篇 ——让你的小说推文秒变视觉与故事双料爆款!
  • 零基础学习RabbitMQ(2)--Linux安装RabbitMQ
  • github常用插件
  • 基于SpringBoot + Vue 的网上拍卖系统
  • 使用AI开发招聘网站(100天AI编程实验)
  • C++ 第二阶段:继承与多态 - 第二节:虚函数与虚函数表
  • DataWhale-零基础络网爬虫技术(三、爬虫进阶技术)
  • 短期项目与长期目标如何同时兼顾
  • SpringCloud系列(32)--使用Hystrix进行全局服务降级
  • 基于分布式部分可观测马尔可夫决策过程与联邦强化学习的低空经济智能协同决策框架
  • 基于协议转换的 PROFIBUS DP 与 ETHERNET/IP 在石化生产中的协同运行实践
  • SwiftUI学习笔记day4: Lecture 4 | Stanford CS193p 2023
  • Lnmp和XunRuiCMS一键部署(Rocky linux)
  • Spring Boot 集成 Apache Kafka 实战指南
  • WebRTC(八):SDP
  • Origin绘制三Y轴柱状图、点线图、柱状点线图
  • pyhton基础【15】函数进阶一
  • C++11 static_assert(基于Boost库)从入门到精通
  • MOS管损坏原因,封装失效、栅极失效、雪崩失效、过流和过压损坏
  • Spring Bean生命周期(基于spring-beans-6.2.6分析)
  • 酒店住宿自助入住系统——店铺自动运营—仙盟创梦IDE
  • 零基础学习RabbitMQ(1)--概述
  • iperf3使用方法
  • 无人驾驶汽车运动控制分为纵向控制和横向控制