今天,我们来聊聊 Unity 里最常打交道的动作之一——角色跳跃。无论是横版闯关还是 3D 跑酷,跳跃都是让角色“活”起来的核心操作。在 Unity 里,几行脚本就能让角色一蹬而起、稳稳落地。下面,就让我们一起把这个“弹跳感”亲手做出来吧!

目录: 

1.创建动画器

2.设置跳跃动画

3.编写跳跃功能的脚本

4.测试与运行

--------------------

一.创建动画器

在这里我已经默认大家通过CharacterController实现了角色移动的功能和动画,如果有不懂的小伙伴可以去查看我《【Unity3D实例-功能-移动】角色移动-CharacterController方式》的博客文章。

这里跳跃模型和动画我都准备好了,大家可以到我的博客下载。首先我们创建一个动画器,并且拖拉到我们的角色上进行绑定。接着我们在动画器的动画模式里,选择“Animate Physics”(用于FixedUpdate方法中更新,使动画和物理系统的更新同步,使用这个模式可以确保动画与物理系统保持一致)。

二.设置跳跃动画

1.首先选中跳跃动画 -> 点击右侧菜单栏的“Rig”-> 在Animation Type的下拉框中,选择“Humanoid”(把动画设置成人形)-> 最后点击“Apply”应用即可。

2.接着打开双击创建好的动画器 -> 把跳跃动画拖拉进去 -> 在“Any State”和跳跃动画之间创建一条过渡线,在跳跃动画和“Exit”之间创建一条过渡线。

3.然后需要创建一个Trigger变量(我这里的变量命名为“jump”)

4.点击选中“Any State”和跳跃动画之间的过渡线 -> 在右侧菜单栏的“Conditions”条件列表中,添加Trigger变量“jump”。

5.点击选中跳跃动画和“Exit”之间的过渡线 -> 在右侧菜单栏的“Conditions”条件列表中,添加Bool变量“Run”,并且值为“true”(这里是在跳跃动画结束后,重新让动画器激活跑步动画,使动画器不会因为去到“Exit”节点而结束)。

三.编写跳跃功能的脚本

1.在 Unity 项目的 Assets 目录里,新建一个文件夹,命名为 Scripts(名字随意,开心就好)。

2.在该文件夹中新建一个 C# 脚本,建好后把它拖到场景里的角色身上,完成挂载。

3.实现跳跃功能的代码

代码、模型和动画都已经上传到我的个人博客了,大家可以自行下载。

原创来源于-谷宇博客:https://www.biguyu.top/home

四.测试与运行

亲测过程:点击进入 Play 模式(运行案例),利用空格键触发 isGround条件判断,调用 CharacterController.Move() 实现瞬时竖直跳跃力的赋值,并在 Game 视图的 Stats 面板连续监测向量y轴的变化 与 isGround 状态,验证基于 CharacterController 的跳跃逻辑。

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

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

相关文章

react+echarts实现变化趋势缩略图

如上图,实现一个缩略图。 import React, { useState, useEffect } from react; const ParentCom () > {const [data, setData] useState({});useEffect(() > {// 这里可以做一些接口请求等操作setData({isSheng: false, value: 11.24, percentage: 2.3%, da…

C语言宏相关操作

宏 宏名称通常都是由大写英文字母构成的宏名称里不可以包含空格用宏给数字起名字的时候不可以使用赋值运算符,不要自增自减可以在编写程序的时候直接使用宏名称替代数字,编译器在编译的时候会把程序里的宏替换成它所代表的数字 1. 为什么要使用宏&#x…

STM32内部读写FLASH

很多情况下,在STM32中写入一些数据,在某些不可控因素下其数据无法保存。因此,解决此问题就要用到FLASH.什么是内部 Flash? Flash 是一种非易失性存储器,STM32 的程序和常量数据就存在 Flash 中。它的关键特点是:特性说…

Oracle 12c + Pl/Sql windows系统下表空间创建、迁移,dmp备份导入,数据库字符集更改

一、开发环境 操作系统:win11 Oracle版本:12c Oracle 数据库字符集:AL32UTF8 Pl/Sql版本:14 二、表空间创建 表空间是 Oracle 数据库中一种重要的逻辑结构,它是数据库中数据文件的逻辑集合,用于存储数据库对…

GUI:QT简介

一、什么是QT?Qt是一套跨平台的 C 图形用户界面(GUI)应用程序开发框架,由挪威 Trolltech(奇趣科技)于 1991 年创建,2008 年被诺基亚收购,2012 年后由 Qt Company 负责维护。它广泛应…

oceanbase执行execute immediate create table提示无权限

问题:OB库4.2.5.4版本,执行到这一句的时候,报没有权限:[rootlnob ~]# obclient -h192.168.207.28 -P2881 -ugistarlnzyob -pxxxxxx -A Welcome to the OceanBase. Commands end with ; or \g. Your OceanBase connection id is 3…

滴滴招java开发

滴滴集团 北京(岗位信息已经过jobleap.cn授权,可在csdn发布)收录时间: 2025年08月01日职位描述 负责滴滴海外业务准入审核及反作弊相关系统的后端开发及系统维护; 职位要求 1、统招本科及以上学历,计算机科…

深入解析基于Zookeeper分布式锁在高并发场景下的性能优化实践指南

深入解析基于Zookeeper分布式锁在高并发场景下的性能优化实践指南 在大规模分布式系统中,如何保证多个节点对同一资源的有序访问,是提高系统稳定性与一致性的核心需求之一。Zookeeper 提供的分布式锁机制,以其简洁的原理和高可靠性&#xff0…

腾讯云CodeBuddy AI IDE+CloudBase AI ToolKit打造理财小助手网页

CodeBuddy 腾讯云CodeBuddy AI IDECloudBase AI ToolKit打造理财小助手网页 在线体验地址:理财小助手 在线仓库:https://cnb.cool/pickstars-2025/ai-financial-assistant 🌟 Hello,我是摘星! 🌈 在彩虹般…

2025-08-08 李沐深度学习11——深度学习计算

文章目录1 模型构造1.1 自定义 MLP(多层感知机)1.1.1 __init__ (构造函数)1.1.2 forward (前向传播)1.2 使用自定义 MLP1.3 自定义 Sequential 类1.4 前向传播1.5 模块的嵌套使用2 参数管理2.1 参数访问2.2 嵌套模型2.3 参数初始化2.4 参数共享3 自定义层…

汇编语言和高级语言的差异

汇编语言与高级语言在以下几个方面存在重要的区别:缺少结构化流程控制。汇编语言不提供if/else、switch/case、for、while等高级控制结构,依赖于底层的无条件跳转和条件跳转指令来实现流程控制。这种基于标签和跳转的方式虽然极其灵活,但缺乏…

文件管理从基础到高级:文件描述符、超大文件切片重组与快速删除实战

文件管理从基础到高级:文件描述符、超大文件切片重组与快速删除实战目标读者:Linux/macOS 用户、后端/运维/数据工程师 环境默认:Linux(GNU 工具链),macOS 类似;Windows 可使用 WSL1&#xff09…

RPC 解析

RPC(Remote Procedure Call,远程过程调用)是一种让分布式系统中的服务能够像调用本地函数一样调用远程服务的通信机制。以下是其核心原理、技术实现及组件的详细解析:🔧 一、RPC 核心工作原理(10 步全流程&…

wstool的一个完整的工作流解析

moveit的仓库源码编译的时候使用的是wstool来拉取仓库的所有内容文件,其命令流程如下: wstool init src wstool merge -t src https://raw.githubusercontent.com/moveit/moveit/master/moveit.rosinstall wstool update -t src rosdep install -y --from-paths src…

对数函数分段定点实现

目录 一、原理介绍 二、代码实现 三、结果显示 四、移植到C语言中的应用 4.1. 定义定点数配置和参数 4.2. 实现分段查找函数 4.3. 实现 log10 近似计算函数 4.4. (可选)定点数转浮点数 一、原理介绍 之前的博文对数函数分段线性实…

qt系统--事件

文章目录qt系统事件处理鼠标事件鼠标移动事件处理键盘事件定时器事件窗口移动和大小改变事件结语很高兴和大家见面,给生活加点impetus!!开启今天的编程之路!! 作者:٩( ‘ω’ )و260 我的专栏&#xff1a…

Linux机器可直接使用的自动化编译文件

还在为了Linux机器上一遍遍输入编译指令苦恼吗?你需要make指令以及自己的makefile文件!在makefile中写入自己的个性化指令,让编译速度飞起,支持多文件编译一下文件为个人应用,可以直接cp到相应项目的目录,每…

Linux学习-数据结构(哈希表)

1.哈希表1.哈希算法将数据通过哈希算法映射成一个关键值,存放都在同一位置实现数据的高效存储和查找,将时间复杂度尽可能降低至O(1)2.哈希碰撞多个数据通过哈希算法得到的键值相同,称为产生哈希碰撞3.哈希表构建哈希表…

Google Chrome <139.0.7236.0 UAF漏洞

【高危】Google Chrome <139.0.7236.0 UAF漏洞 漏洞描述 Google Chrome 是美国谷歌&#xff08;Google&#xff09;公司的一款Web浏览器。 受影响版本中&#xff0c;OpenscreenSessionHost::ReportAndLogError 方法的参数使用了 std::string_view 类型来接收错误消息。当一…

CentOS8 Stream 网卡配置及重启

在 CentOS 8 Stream 中&#xff0c;网卡配置已由 NetworkManager 管理&#xff0c;传统的 ifcfg-eth0 文件仍然支持&#xff0c;但推荐使用 nmcli 或 nmtui 工具进行网络配置和管理。以下是网卡配置及重启的详细步骤&#xff1a;1. 查看当前网卡状态列出所有网卡bash复制nmcli …