首页 > 其他分享 >UE4实现人物跳跃

UE4实现人物跳跃

时间:2023-06-01 14:48:02浏览次数:31  
标签:人物 void APlayingCharacter BindAction 跳跃 UE4 BindAxis InputComponent

这一节我们来实现人物的跳跃。

1) 首先我们打开 UE4 编辑器,点击项目设置,点击输入,添加 BindAction 类型的按键绑定,名字为 Jump,按键是空格键。


2) 打开 VS 编辑器,在我们的角色类 APlayingCharacter 头文件的末尾声明两个函数,分别是开始跳跃和停止跳跃:
纯文本复制
  1. //跳跃开始
  2. void JumpStart();
  3. //跳跃结束
  4. void JumpEnd();
//跳跃开始
void JumpStart();
//跳跃结束
void JumpEnd();

3) APlayingCharacter.cpp 实现如下:
纯文本复制
  1. void APlayingCharacter::JumpStart()
  2. {
  3. //如果是真的话,角色跳跃
  4. bPressedJump = true;
  5. }
  6. void APlayingCharacter::JumpEnd()
  7. {
  8. //如果是假的话,结束跳跃
  9. bPressedJump = false;
  10. }
void APlayingCharacter::JumpStart()
{
    //如果是真的话,角色跳跃
    bPressedJump = true;
}
void APlayingCharacter::JumpEnd()
{
    //如果是假的话,结束跳跃
    bPressedJump = false;
}

4) 在 SetupPlayerInputComponent 函数里面绑定按键输入:
纯文本复制
  1. void APlayingCharacter::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent)
  2. {
  3. Super::SetupPlayerInputComponent(PlayerInputComponent);
  4. InputComponent->BindAxis("MoveForward",this, &APlayingCharacter::MoveForward);
  5. InputComponent->BindAxis("MoveBack",this, &APlayingCharacter::MoveBack);
  6. InputComponent->BindAxis("MoveRight",this, &APlayingCharacter::MoveRight);
  7. InputComponent->BindAxis("MoveLeft",this, &APlayingCharacter::MoveLeft);
  8. InputComponent->BindAxis("Turn", his, &APawn::AddControllerYawInput);
  9. InputComponent->BindAxis("LookUp",this, &APawn::AddControllerPitchInput);
  10. InputComponent->BindAction("Jump",IE_Pressed,this,&APlayingCharacter::JumpStart);
  11. InputComponent->BindAction("Jump", IE_Released, this, &APlayingCharacter::JumpEnd);
  12. }
void APlayingCharacter::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent)
{
    Super::SetupPlayerInputComponent(PlayerInputComponent);
    InputComponent->BindAxis("MoveForward",this, &APlayingCharacter::MoveForward);
    InputComponent->BindAxis("MoveBack",this, &APlayingCharacter::MoveBack);
    InputComponent->BindAxis("MoveRight",this, &APlayingCharacter::MoveRight);
    InputComponent->BindAxis("MoveLeft",this, &APlayingCharacter::MoveLeft);
    InputComponent->BindAxis("Turn", his, &APawn::AddControllerYawInput);
    InputComponent->BindAxis("LookUp",this, &APawn::AddControllerPitchInput);
    InputComponent->BindAction("Jump",IE_Pressed,this,&APlayingCharacter::JumpStart);
    InputComponent->BindAction("Jump", IE_Released, this, &APlayingCharacter::JumpEnd);
}
BindAction 是一种 “状态”按键输入类,IE_Pressed 表示的是按下的时候执行JumpStart() 函数,IE_Released 表示的是松开的时候执行JumpEnd()事件。BindAxis 按键绑定类型是可以一直按一直执行的,而 BindAction 是按一次执行一次事件。松开执行一次事件,BindAction也可以不配套使用。

5) 编译,打开 UE4 编辑器点击播放,按空格键人物可以跳跃。

标签:人物,void,APlayingCharacter,BindAction,跳跃,UE4,BindAxis,InputComponent
From: https://www.cnblogs.com/tomato-haha/p/17448905.html

相关文章

  • UE4设置人物移动和人物视角
    本节我们先讲解UE4人物移动的设置,然后再讲解UE4人物视角的设置。UE4设置人物移动1)打开UE4编辑器,点击“编辑”然后点击“项目设置”:2)选择“输入”:3)点击“AxisMappins”的添加按键输入,我们创建6个按键输入:4)更改按键和按键的名字,这里一个按键......
  • UE4新建项目
    打开UE4启动器,选择4.21.2版本的虚幻引擎,点击“启动”按钮。 点击之后会出现如下图所示的界面,可以对新建项目进行设置。 “项目”这一栏存放着你新建后的项目。我们点击“新建项目”,点击“C++”,选择“基础代码”,选择“没有初学者内容”,然后写上项目名字,注意不......
  • UE4使用什么编译器?
    UE4的底层虽然是用C++实现的,但它又不仅仅是一个C++库,它还实现了自己的编译机制。换句话说,UE4对现有的C++语法进行了改进,以适应游戏开发的场景。当然,UE4也不会疯狂到自己去开发一个C++编译器,它还是需要依赖传统的C++编译器以及相关的编程套件。熟悉Qt的读者应该......
  • UE4是什么?虚幻4引擎是什么?
    UE4的全名是UnrealEngine4,中文译为“虚幻引擎4”。UE4是一款由EpicGames公司开发的开源、商业收费、学习免费的游戏引擎。从1998年发行至今,UE4一共经历了UE、UE2、UE2.5、UE3、UDK、UE4多个版本,它的迭代速度极快,现在已经到了4.22预览版。基于UE4开发的大作无......
  • UE4的下载和安装(UE4开发环境的搭建)
    使用UE4开发游戏之前,必须先搭建开发环境,具体包括:UE4引擎的下载和安装VisualStudio下载和安装UE4的下载和安装1)首先,打开任意一个浏览器输入UE4官方网站的网址 https://www.unrealengine.com/zh-CN/,点击右上角的“下载”按钮,如下图所示:2)官方要求必须登录......
  • 2023-05-31:给定一个整数数组 A,你可以从某一起始索引出发,跳跃一定次数 在你跳跃的过程
    2023-05-31:给定一个整数数组A,你可以从某一起始索引出发,跳跃一定次数在你跳跃的过程中,第1、3、5...次跳跃称为奇数跳跃而第2、4、6...次跳跃称为偶数跳跃你可以按以下方式从索引i向后跳转到索引j(其中i<j):在进行奇数跳跃时(如,第1,3,5...次跳跃),你将会跳到索引j使得A[......
  • 2023-05-31:给定一个整数数组 A,你可以从某一起始索引出发,跳跃一定次数 在你跳跃的过程
    2023-05-31:给定一个整数数组A,你可以从某一起始索引出发,跳跃一定次数在你跳跃的过程中,第1、3、5...次跳跃称为奇数跳跃而第2、4、6...次跳跃称为偶数跳跃你可以按以下方式从索引i向后跳转到索引j(其中i<j):在进行奇数跳跃时(如,第1,3,5...次跳跃),你将会跳到索引j使得A[i]<=......
  • UE4字符串调试日志
    #在运行时打印输出信息原作者:Rama(opensnewwindow)此文为Logs,PrintingMessagesToYourselfDuringRuntime(opensnewwindow)的原创翻译,本文内容版权归原文所有,仅供学习,如需转载望注本文地址,翻译不易,谢谢理解。#概述Logs很重要,因为它通过给你反馈来让你知道:你的......
  • UE4中控制台变量
    #前言此文为ConsoleVariablesinC++(opensnewwindow)的原创翻译,本文内容版权归原文所有,仅供学习,如需转载望注本文地址,翻译不易,谢谢理解。一个控制台命令是用户输入字符发送到引擎然后引擎以某种方式反应(比如console/log变量,改变内部状态)。一个控制台变量会额外地保存一......
  • UE4中的蓝图函数库
    #蓝图函数库此文为AssertionsBlueprintFunctionLibraries(opensnewwindow)的原创翻译,本文内容版权归原文所有,仅供学习,如需转载望注本文地址,翻译不易,谢谢理解我们在开发中经常发现需要一系列工具函数来让开发更简单。这些函数经常是无状态的,并且在各种gameplay框架代码中......