UE5学习笔记12-为角色添加蹲下的动作
一、一点说明
1.蹲下使用了ACharacter类中Crouch();函数,函数功能是先检查是否存在运动组件,将bool类型的变量变为true,该变量代表是想要蹲下。
2.通过源码可知存在是否蹲下的bool变量bIsCrouched如图,如果对:1有疑问请搜索C++位域
3.当前是只有在拿到武器时才会蹲下,因为蓝图中的动画是拿着武器蹲伏的动画
二、代码实现
1.添加动作映射
2.添加回调函数,在函数SetupPlayerInputComponent绑定对应回调函数
//H
void CrouchButtonPressed();//CPP
void ABlasterCharacter::CrouchButtonPressed()
{/* 调用ACharacter中的蹲下功能 */if (bIsCrouched){UnCrouch();}else{Crouch();}
}void ABlasterCharacter::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent)
{Super::SetupPlayerInputComponent(PlayerInputComponent);/* 绑定动作映射 */PlayerInputComponent->BindAction("Jump", IE_Pressed, this, &ACharacter::Jump);/* 具有一个输入的事件IE_Pressed */PlayerInputComponent->BindAction("Equip", IE_Pressed, this, &ABlasterCharacter::EquipButtonPressed);PlayerInputComponent->BindAction("Crouch", IE_Pressed, this, &ABlasterCharacter::CrouchButtonPressed);/* 绑定轴映射 */PlayerInputComponent->BindAxis("MoveForward",this,&ABlasterCharacter::MoveForward);PlayerInputComponent->BindAxis("MoveRight", this, &ABlasterCharacter::MoveRight);PlayerInputComponent->BindAxis("Turn", this, &ABlasterCharacter::Turn);PlayerInputComponent->BindAxis("LookUp", this, &ABlasterCharacter::LookUp);
}
3.在动画类中添加变量如图代码如图BlasterCharacter->bIsCrouched中bIsCrouched是public的bool变量可以直接判断
//H
UPROPERTY(BlueprintReadOnly, Category = Character, meta = (AllowPrivateAccess = "true"))/** 蓝图只读 类型是Character 允许私有访问 */
bool bIsCrouched;//CPP
void UBlasterAnimInstance::NativeUpdateAnimation(float DeltaTime)
{Super::NativeUpdateAnimation(DeltaTime);/* 判断当前角色是否为空 为空获得当前角色当作第一帧 */if (BlasterCharacter == nullptr){BlasterCharacter = Cast<ABlasterCharacter>(TryGetPawnOwner());}if (BlasterCharacter == nullptr)return;/* 只想获得平面上xy的速度的向量,将z方向的速度置为0 */FVector Velocity = BlasterCharacter->GetVelocity();Velocity.Z = 0.f;/* 获得速度的向量 */Speed = Velocity.Size();bIsInAir = BlasterCharacter->GetCharacterMovement()->IsFalling(); /** IsFalling()判断是否在空中 GetCharacterMovement()获得人物移动 */bIsAccelerating = BlasterCharacter->GetCharacterMovement()->GetCurrentAcceleration().Size() > 0.f ? true : false;/* 获得是否装备武器 */bWeaponEquipped = BlasterCharacter->IsWeaonEquipped();/* 获得是否蹲下的bool值 */bIsCrouched = BlasterCharacter->bIsCrouched;
}
三、蓝图实现
1.打开动画蓝图,选择对应的动画如图
2.双击左侧的箭头,添加如图所示
3.双击右侧的箭头,添加如图所示
4.编译保存
5.打开角色蓝图点击角色移动(在左侧可以找到)在右侧角色移动的细节栏中将可蹲伏勾选如图
6.上图的蹲伏半高是由于蹲下时会更改角色胶囊的大小,蹲伏半高可以限制高度,同理最大蹲伏行走速度是在蹲下是的移动速度
7.代码中设置可蹲伏,可以在角色的构造函数中添加如下语句和上图的勾选效果一样,如果单独设置某一个没起作用,可以尝试两个一个设置
/* 获得运动组件将设置为可以蹲伏,该设置和在角色蓝图中在角色移动的细节栏中将可蹲伏(中文) isCrouch(英文)选项打√效果一样 */
GetMovementComponent()->NavAgentProps.bCanCrouch = true;
相关文章:
UE5学习笔记12-为角色添加蹲下的动作
一、一点说明 1.蹲下使用了ACharacter类中Crouch();函数,函数功能是先检查是否存在运动组件,将bool类型的变量变为true,该变量代表是想要蹲下。 2.通过源码可知存在是否蹲下的bool变量bIsCrouched如图,如果对:1有疑问请搜索C位域 …...
【笔记】Android 多用户模式和用户类型
简介 用户界面:System 》Multiple Users 》 开关多用户模式。 一般是不同用户模式下,有修改Settings应用配置的权限差异,因此需要通过用户类型对功能进行判断限制。 代码 通过UserManager可以获取当前用户的信息。 frameworks/base/core/…...
SQL基础——MySQL的索引
简介:个人学习分享,如有错误,欢迎批评指正。 一、概述 介绍 索引是通过某种算法,构建出一个数据模型,用于快速找出在某个列中有一特定值的行,不使用索引,MySQL必须从第一条记录开始读完整个表&…...
【开发语言】面向对象和面向过程开发思路的区别
引入: 我总结了 面向过程的开发语言思路:1.我要干啥?2.怎么才能实现 面向对象的开发语言思路:1.我要研究谁?2.他能干啥 详解: 面向过程的开发语言思路 我要干啥? 在面向过程的开发中&a…...
谷歌账号登录的时候提示被停用,原因是什么,账号还有救吗?该如何处理?
今日早上,有个久违的朋友找到我说,要恢复账号。 他的情况是这样的:7月21日的时候,他发现自己的谷歌账号登录的时候提示活动异常先,需要输入手机号码验证才能恢复账号。但是输入了自己和亲友们的多个手机号码都无法验证…...
数据库复习笔记
写在最前, 写文章的初衷只是为了复习与记录自己的成长,笔者目前水平还有待提高,文章中难免会出现许多问题与错误,文章内容仅供参考,有不足的地方还请大家多多包涵并指正,谢谢~ 第八章 T-SQL程序结构 8.…...
学习STM32(6)-- STM32单片机ADCDAC的应用
1 引 言 深入了解并掌握STM32F103单片机在模拟数字转换(ADC)和数字模拟转换(DAC)应用方面的功能和操作。学习如何配置STM32F103的ADC模块,实现模拟信号到数字信号的精确转换;同时,探索DAC模块…...
学习记录第二十五天
wait函数 wait函数是一个系统调用,用于等待一个子进程结束并回收其资源。当父进程调用wait函数时,它会暂停执行,直到至少有一个子进程结束。wait函数的原型如下: #include <sys/types.h> #include <sys/wait.h>pid_…...
C语言:字符串函数strcmp
该函数用于比较两个字符串是否一样。 使用方法如下: #include<stdio.h> #include<string.h>int main() {//strcmp函数返回值有三种情况,小于零时返回-1,等于零,大于零时返回1printf("%d\n", strcmp("…...
【数据分析---偏企业】 Excel操作
各位大佬好 ,这里是阿川的博客,祝您变得更强 个人主页:在线OJ的阿川 大佬的支持和鼓励,将是我成长路上最大的动力 阿川水平有限,如有错误,欢迎大佬指正 Excel操作前 必看 Python 初阶 Python—语言基础与…...
Ajax-01.原生方式
<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Ajax-原生方式</title> </head> <!-…...
OpenAI GPT-2 model use with TensorFlow JS
题意:使用 TensorFlow JS 应用 OpenAI GPT-2 模型 问题背景: Is that possible to generate texts from OpenAI GPT-2 using TensorFlowJS? 是否可以使用 TensorFlowJS 生成 OpenAI GPT-2 的文本? If not what is the limitation, like mo…...
JVM-运行数据区(堆、栈、元空间)
文章声明:文章图片均来自互联网,因为本人画的图不够生动。 运行数据区是JVM最重要的一个区域。 运行数据区由栈、堆、元空间构成。 栈:程序计数器、JVM虚拟机栈,本地方法栈 本地方法栈:加载native修饰的方法&#…...
超详细!!! LVS(Linux virual server)负载均衡知识及其NAT模式、DR模式、火墙标记实验
目录 前言系统性能扩展方式集群Cluster分布式集群与分布式 四层转发与七层转发的区别 LVS(Linux virual server)一、LVS介绍LVS相关概念 二、LVS集群结构体系1. 负载均衡层(Load Balancer)2. 服务器群组层(Server Pool…...
信息学奥赛一本通1259:【例9.3】求最长不下降序列
题目: 1259:【例9.3】求最长不下降序列 时间限制: 1000 ms 内存限制: 65536 KB 提交数:51218 通过数: 20928 Special Judge 【题目描述】 设有由n(1≤n≤200)n(1≤n≤200)个不相同的整数组成的数列,记为:b(1)、b(2)、……、…...
星露谷模组开发教程#3 事件
首发于Enaium的个人博客 SMAPI提供了一些事件,比如游戏的内容、显示、输入等事件。这些事件可以让我们在游戏中添加自己的逻辑。这一节我们就来看看如何使用这些事件。 注册一个事件 在SMAPI中,我们可以通过IModHelper的Events属性来注册事件。比如我们…...
C语言程序设计(初识C语言后部分)
愿天下无Bug,秀发常驻。 3)函数的参数 1.实际参数(实参): 真实传给函数的参数,叫实参。 实参可以是:常量、变量、表达式、函数等。 无论实参是何类型的量,在进行函数调用时&#…...
驱动基础开发
1、字符设备传统开发模板 字符设备驱动框架,首先我们需要去用module_init这个宏去修饰整个驱动的入口函数,用module_exit去修饰整个驱动的出口函数,然后还需要用MODULE_LICENSE用于声明模块的许可证类型。 在入口函数里面我们需要注册字符设…...
从苹果AppStore看AI开发者生态
从苹果 App Store 看 AI 开发者生态 在人工智能迅速发展的今天,我们不禁要问:未来的 AI 开发者生态将会是什么样子?为了回答这个问题,我们不妨回顾一下移动互联网时代最成功的开发者生态之一——苹果的 App Store。 通过分析 App …...
【Python学习-UI界面】PyQt5 小部件1-Label
QLabel 对象可用作显示不可编辑的文本、图像或动态GIF影片的占位符。 它还可以用作其他小部件的助记键。 标签可以显示普通文本、超链接或富文本。 1、普通文本 直接双击输入即可 2、添加超链接 选中对应Label,右键选择多信息文本,添加链接,…...
【Linux详解】进度条实现 Linux下git 的远程上传
📃个人主页:island1314 🔥个人专栏:Linux—登神长阶 ⛺️ 欢迎关注:👍点赞 👂🏽留言 😍收藏 💞 💞 💞 🚀前言 &#x…...
Android进阶之路 - res、raw、assets 资源解析、区别对比
那天遇到一个资源目录层级的问题,索性重新整理记录一下,希望能帮到如吾往昔之少年的你们,哈哈哈哈哈哈… 一脸茫然,越写越多,时间成本属实有点大,就当一起来基础扫盲吧 resdrawablemipmapvaluescolor asset…...
从数字化到数智化:消费零售企业如何实现门店数智化管理?
随着信息技术的飞速发展,数字化已成为企业转型的必经之路。然而,数字化本身并不是目的,而是通往数智化的桥梁。数智化,即数据智能化,是指企业通过数字化手段收集和分析数据,进而利用这些数据驱动决策和创新…...
Linux中ES的安装
文章目录 一、ES是什么1.1、ES概念介绍1.2、技术架构1.2.1、Lucene介绍 1.3、ES的工作原理1.4、ES的适用场景 二、安装前的配置2.1、创建普通用户2.2、调整文件描述符数量和虚拟内存2.3、设置shell会话的资源限制(软限制和硬限制)2.4、增加虚拟内存的设置…...
Redis远程字典服务器(5) —— hash类型详解
目录 一,hash基本情况 二,hash常用命令详解 2.1 hset,hget,hexists,hdel 2.2 hexists,hdel 2.3 hkeys,hvals 2.4 hgetall,hmget 2.5 hlen,hsetnx 2.6 hincrby&am…...
MySQL | 行锁——记录锁、间隙锁 、临键锁、插入意向锁
1、InnoDB中的行锁 行锁(Row Lock) 也称为记录锁,顾名思义,就是锁住某一行(某条记录row)。需要注意的是,MySQL服务器层并没有实现行锁机制,行级锁只在存储引擎层实现。 优点&#x…...
【网络编程】TCP通信基础模型实现
tcpSer.c #include <myhead.h> #define SER_IP "192.168.119.143" // 设置IP地址 #define SER_PORT 6666 // 设置端口号 int main(int argc, const char *argv[]) {// 1.创建socketint serfd socket(AF_INET, SOCK_STREAM, 0);// 参数1表示ipv4// 参数2表…...
css rem之2024
话题开始前 我们都知道1rem是等于html fontSize标签的字体大小的,我们主要用来做移动端网页设计稿等比例在手机上面的显示。 看到的问题 这个html fontsize的大小是通过js动态计算的,而这个js的运行时晚于html渲染的,所以会导致一个问题&am…...
python自动化笔记:pytest框架
目录 一、pytest介绍二、测试用例命名规则2.1、pytest命名规则2.2、python命名规范 三、pytest运行方式3.1、主函数方式3.2、命令行方式3.3、通过pytest.ini的配置文件运行(常用) 四、跳过测试用例4.1 无条件跳过4.2 有条件跳过 五、用例的前后置&#x…...
wpf 路径动画 举例
先,我们需要在XAML中定义一个Path,这个Path将定义动画的路线。然后,我们将使用DoubleAnimationUsingPath来沿着这个路径移动一个元素(比如一个矩形)。 <Window x:Class"WpfApp.MainWindow" xmlns"…...
网站建设收费标准不一/优化设计三年级上册答案语文
题目: 输入格式: 每个输入包含一个测试用例,第1行输入N(1≤N≤100)和M(≥0);第2行输入N个整数,之间用空格分隔。 输出格式: 在一行中输出循环右移M位以后的整数序列,之…...
八大处做双眼预约网站/app开发公司排名
你还在为了Word、Excel、PDF、CAD等文档格式转换而发愁吗? 你是否在寻找一款能够在应用程序中文档管理的工具呢? Aspose——支持100多种文件格式创建、编辑、转换和打印! 往下看,找一找哪款产品满足您的开发需求~ ▼▼▼▼▼ ★…...
东莞建站模板代理/怎么建立网站
1.安装MySQL (免费) 官网现下载地址 http://dev.mysql.com/downloads/mysql/ (我选的mysql-5.7.17-macos10.12-x86_64.dmg) 点击download 会跳转到另外一个界面,这个界面是提示你需不需要注册的,直接选…...
四川城乡建设部网站首页/全球网络营销公司排行榜
删除文件:del (deldelete 命令erase与del一样的效果.) D:\>del /?删除一个或数个文件。DEL [/P] [/F] [/S] [/Q] [/A[[:]attributes]] namesERASE [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names names 指定一个或数个文件或目…...
河北建设厅官方网站电话/制作网页多少钱
原帖:http://3dmgame.chnren.com/bbs/showtopic-604395.html 这个是标题,因为去年开始做的时候就采用了这张图做标题,所以最终版也没有更换,只是修饰了一下呵呵。游戏名称:萝莉的远征RPG1ST银色幻境版本信息࿱…...
土石方工程网站/百度网址大全下载安装
这套程序某站授权卖3000开源9000程序可以完美运营,没有任何bug对接了众人帮、两个问卷一个打字一个游戏接口,搭建就能运营,支付对接的是码支付。下载地址里面有教程前端后端数据库都是完整的,后台账号密码好像是admin/123456主要说…...