UE5实现角色二段跳

devtools/2025/2/26 4:16:17/

1.二段跳

        首先如果不想使用UE中增强输入功能,可以在SetupPlayerInputComponent函数中绑定对应的操作,具体可以自行查找。如果使用增强输入,可以通过创建一个UE自带的第三人称模板C++项目学习,假设当前项目是创建自UE第三人称模板项目。

        实现,重写Jump,StopJumping,Landed函数 , StopJumping会在Jump函数执行后会立即执行,Landed函数会在角色落地后执行,我没有完善角色的二段跳动画,如果想完善可以在跳跃动作的状态机(statemachine)拉出一个新的状态,这个状态是二段跳的状态,状态的动画是二段跳动画。

// h
/** 当前角色跳跃 */
virtual void Jump() override;/** 当前角色停止跳跃 */
virtual void StopJumping() override;/** 当前角色着陆 */
virtual void Landed(const FHitResult& Hit) override;UPROPERTY(VisibleAnywhere, Category = "Jump")
bool bCanDoubleJump; // 是否可以进行二段跳UPROPERTY(VisibleAnywhere, Category = "Jump")
float DoubleJumpZVelocity; // 二段跳的垂直速度// cpp
AJumpCharacter::AJumpCharacter()
{// 构造函数中初始化bCanDoubleJump = false;DoubleJumpZVelocity = 1000.f;  // 可根据需要调整
}void AJumpCharacter::Jump()
{// 如果角色能够跳跃,执行第一次跳跃//UE_LOG(LogTemp, Warning, TEXT("jump"));if (CanJump()){Super::Jump();bCanDoubleJump = true; // 允许进行二段跳//UE_LOG(LogTemp, Warning, TEXT("first jump"));}else if (bCanDoubleJump){// 如果可以二段跳,进行二段跳//UE_LOG(LogTemp , Warning , TEXT("second jump"));FVector JumpVelocity = FVector(0.f, 0.f, DoubleJumpZVelocity);GetCharacterMovement()->Launch(FVector(0.f, 0.f, DoubleJumpZVelocity));bCanDoubleJump = false; // 禁用二段跳}
}void AJumpCharacter::StopJumping()
{Super::StopJumping();//UE_LOG(LogTemp , Warning , TEXT("StopJumping"));//bCanDoubleJump = false;  // 重置二段跳状态
}void AJumpCharacter::Landed(const FHitResult& Hit)
{Super::Landed(Hit);//UE_LOG(LogTemp, Warning, TEXT("Landed"));bCanDoubleJump = false; // 角色落地后禁用二段跳
}

http://www.ppmy.cn/devtools/162720.html

相关文章

在windows下安装windows+Ubuntu16.04双系统(下)

这篇文章的内容主要来源于这篇文章,为正式安装windowsUbuntu16.04双系统部分。在正式安装前,若还没有进行前期准备工作(1.分区2.制作启动u盘),见《在windows下安装windowsUbuntu16.04双系统(上)》 二、正式安装Ubuntu …

Windows、Mac、Linux,到底该怎么选?

在当今数字化时代,电脑已成为我们生活和工作中不可或缺的工具。而操作系统作为电脑的核心,其选择直接影响着我们的使用体验。Windows、Mac 和 Linux 作为三大主流操作系统,各自有着独特的优势和不足。今天,就来给大家详细分析一下…

如何使用Spring boot框架实现图书管理系统

使用 Spring Boot 框架实现图书管理系统可以按照以下步骤进行,涵盖了从项目搭建、数据库设计、后端接口开发到前端页面展示的整个流程。 1. 项目搭建 可以使用 Spring Initializr(https://start.spring.io/ )来快速创建一个 Spring Boot 项目…

Win11安装dpanel实现docker可视化面板,并解决端口冲突的问题

目标是给Win11的docker安装dpanel可视化面板,可以更直观的看到docker中的数据。 执行镜像(没有则自动拉取) 首先配置好docker加速环境(阿里云的docker加速等),然后访问GitHub - donknap/dpanel: 轻量化 do…

054 redisson

文章目录 使用Redisson演示可重入锁读写锁信号量闭锁获取三级分类redisson分布式锁 package com.xd.cubemall.product.config;import org.redisson.Redisson; import org.redisson.api.RedissonClient; import org.redisson.config.Config; import org.springframework.context…

DeepSeek掘金——VSCode 接入DeepSeek V3大模型,附使用说明

VSCode 接入DeepSeek V3大模型,附使用说明 由于近期 DeepSeek 使用人数激增,服务器压力较大,官网已 暂停充值入口 ,且接口响应也开始不稳定,建议使用第三方部署的 DeepSeek,如 硅基流动 或者使用其他模型/插件,如 豆包免费AI插件 MarsCode、阿里免费AI插件 TONGYI Lin…

【Python爬虫(36)】深挖多进程爬虫性能优化:从通信到负载均衡

【Python爬虫】专栏简介:本专栏是 Python 爬虫领域的集大成之作,共 100 章节。从 Python 基础语法、爬虫入门知识讲起,深入探讨反爬虫、多线程、分布式等进阶技术。以大量实例为支撑,覆盖网页、图片、音频等各类数据爬取&#xff…

在windows下安装windows+Ubuntu16.04双系统(上)

这篇文章的内容主要来源于这篇文章,给文章很详细的介绍了如何从windows下安装windowsubuntu16.04双系统。我刚开始装双系统都是参照这个方法,该作者前后更新了两个版本,在这里对其稍微进行整理一下。 一、准备:(这里推…