用Unity2D制作一个人物,实现移动、跳起、人物静止和动起来时的动画:下(人物动画)
上个博客我们做出了人物的动画机和人物移动跳跃,接下来我们要做出人物展现出来的动画了
我们接下来就要用到动画机了,双击我们的动画机,进入到这样的页面,我这是已经做好的页面,你们是没有这些箭头的

依次像我一样连接起来,然后点击Parameters,点击name旁边的小箭头,选择 int 类型

之后我们随便选择一条线,点击Conditions的+, 选择如图所示的样子,选择state和Equals喔

然后就有所不同的:
- 所有指向Idle的我们的值都设置为0;
- 所有指向Move的,我们都设置为1;
- 所有指向Jump的,我们都设置成2;
- 所有指向Fall的,我们都设置成3。
把Has Exit Time勾选取消掉,就是不勾选,然后展开setting,把Transition Duratior的值都改为0

之后就可以进入我们的代码部分了,把我们之前的C#代码打开,改成这个
using Unity.VisualScripting;
using UnityEngine;public class Move : MonoBehaviour
{// 定义私有变量rb,类型为Rigidbody2D,用于存储刚体组件的引用private Rigidbody2D rb; // 定义私有变量coll,类型为BoxCollider2D,用于存储碰撞体组件的引用private BoxCollider2D coll;// 定义私有变量anim,类型为Animator,用于存储动画控制器组件的引用private Animator anim;// 定义公共变量JumpSpeed,类型为float,用于存储跳跃速度public float JumpSpeed = 5f; // 定义公共变量MoveSpeed,类型为float,用于存储移动速度public float MoveSpeed = 5f; // 定义公共变量Level,类型为float,用于存储水平输入值public float Level = 0f;// 定义私有变量JumpableGround,类型为LayerMask,用于存储可以跳跃的地面层[SerializeField] private LayerMask JumpableGround;// 定义一个名为MoveState的枚举,包含idle(静止)、run(跑步)、jump(跳跃)、fall(下落)四个状态private enum MoveState {idle, run, jump, fall}// Start方法在脚本实例化后、第一帧更新前被调用private void Start(){// 获取并赋值当前GameObject上的Rigidbody2D组件到rb变量rb = GetComponent<Rigidbody2D>();// 获取并赋值当前GameObject上的BoxCollider2D组件到coll变量coll = GetComponent<BoxCollider2D>();// 获取并赋值当前GameObject上的Animator组件到anim变量anim = GetComponent<Animator>();}// Update方法每帧调用一次private void Update(){// 获取水平方向的输入值,不进行平滑处理Level = Input.GetAxisRaw("Horizontal");// 设置角色的水平速度为Level乘以MoveSpeed,垂直速度保持不变rb.velocity = new Vector2(Level * MoveSpeed, rb.velocity.y);// 如果按下跳跃按钮并且角色在地面上if (Input.GetButtonDown("Jump") && IsGround()) {// 设置角色的垂直速度为JumpSpeed,水平速度保持不变rb.velocity = new Vector2(rb.velocity.x, JumpSpeed);}// 调用UpdateStates方法来更新动画状态UpdateStates();}// UpdateStates方法用于更新角色的动画状态private void UpdateStates(){ // 定义一个MoveState类型的变量stateMoveState state;// 根据水平输入值翻转角色if (Level > 0f){// 如果输入值大于0,设置状态为run(跑步),并设置角色不翻转state = MoveState.run;this.gameObject.GetComponent<SpriteRenderer>().flipX = false;}else if (Level < 0f){// 如果输入值小于0,设置状态为run(跑步),并设置角色翻转state = MoveState.run;this.gameObject.GetComponent<SpriteRenderer>().flipX = true;}else{// 如果没有水平输入,设置状态为idle(静止)state = MoveState.idle;}// 根据角色的垂直速度设置跳跃或下落状态if (rb.velocity.y > .1f){// 如果垂直速度大于0.1,设置状态为jump(跳跃)state = MoveState.jump;}else if (rb.velocity.y < -.1f){// 如果垂直速度小于-0.1,设置状态为fall(下落)state = MoveState.fall;}// 使用Animator组件设置名为"state"的整数参数,值为state的枚举整数值anim.SetInteger("state", (int)state);}// IsGround方法用于检测角色是否在地面上private bool IsGround(){// 使用Physics2D.BoxCast方法进行射线投射,检测角色下方是否有可以跳跃的地面层return Physics2D.BoxCast(coll.bounds.center, coll.bounds.size, 0f, Vector2.down, .1f, JumpableGround);}
}
这个代码是我在网上面找的,他用到的IsGroup()很精髓,如果我们不这么做,就需要自己设置IsGroup,之后true和false来回转换,还需要加Unity里面的碰撞体方法进行判断。


这里面就能看到我刚才为什么要让你们设置指向谁的必须是几了。
然后我们保存一下,回到我们的Unity,运行一下就可以看到我们人物的移
动动作和跳起动作了。
如果没有成功跳起来的话:
我们依次点击Tilemap——> Layer——>Add Layer..

添加一个Ground

回到Tilemap,选中Ground

点击Player,选择Move文件,点击Jumpable Ground 切换到Ground,如果这些部分不设置的话,可能我们C#代码里面的IsGround就用不了

最后:运行!

相关文章:
用Unity2D制作一个人物,实现移动、跳起、人物静止和动起来时的动画:下(人物动画)
上个博客我们做出了人物的动画机和人物移动跳跃,接下来我们要做出人物展现出来的动画了 我们接下来就要用到动画机了,双击我们的动画机,进入到这样的页面,我这是已经做好的页面,你们是没有这些箭头的 依次像我一样连接…...
Android 优雅封装Glide
文章目录 Android 优雅封装Glide核心思想定义策略接口定义图片选项实现Glide策略图片管理类使用 Android 优雅封装Glide 核心思想 使用策略模式实现不同图片加载框架的切换,使用建造者设计模式处理不同参数,最后通过 ImageLoader 进行管理。 定义策略…...
智能优化算法-粒子群优化算法(PSO)(附源码)
目录 1.内容介绍 2.部分代码 3.实验结果 4.内容获取 1.内容介绍 粒子群优化算法 (Particle Swarm Optimization, PSO) 是一种基于群体智能的元启发式优化算法,由Kennedy和Eberhart于1995年提出。PSO模拟了鸟群或鱼群的觅食行为,通过粒子之间的相互作用…...
vue系统获取授权平台授权码实现单点登录、注销功能
公司平台需要对接别的平台 实现单点登录 注销。简而言之,不需要在自己公司系统登录 统一在别的平台登录后获取到登录凭证(授权码) 在本公司系统实现免密登录的功能。 流程: 跳转授权页面和保存授权码的代码: hrefLog…...
Java之枚举
目录 枚举 引入 定义 代码示例 常用方法 代码示例 枚举的优缺点 枚举和反射 面试题 枚举 引入 枚举是在JDK1.5以后引入的。主要用途是:将一组常量组织起来,在这之前表示一组常量通常使用定义常量的方式: publicstaticintfinalRED1;…...
八、适配器模式
适配器模式(Adapter Pattern)是一种结构型设计模式,它允许不兼容的接口之间进行合作。适配器模式通过创建一个适配器类来转换一个接口的接口,使得原本由于接口不兼容无法一起工作的类可以一起工作。 主要组成部分: 目标…...
关于E-R图
一 什么是E-R图 E-R图(Entity-Relationship Diagram)是一种数据建模工具,用于描述数据库中实体之间的关系。它使用实体(Entity)、属性(Attribute)和关系(Relationship&#…...
DVWA通关教程
Brute Force Low 先进行一下代码审计 <?php // 检查是否通过GET请求传递了Login参数(注意:这里应该是username或类似的,但代码逻辑有误) if( isset( $_GET[ Login ] ) ) { // 从GET请求中获取用户名 $user $_GET[ us…...
网络学习-eNSP配置VRRP
虚拟路由冗余协议(Virtual Router Redundancy Protocol,简称VRRP) VRRP广泛应用在边缘网络中,是一种路由冗余协议,它的设计目标是支持特定情况下IP数据流量失败转移不会引起混乱,允许主机使用单路由器,以及即使在实际…...
Kafka【九】如何实现数据的幂等性操作
为了解决Kafka传输数据时,所产生的数据重复和乱序问题,Kafka引入了幂等性操作,所谓的幂等性,就是Producer同样的一条数据,无论向Kafka发送多少次,kafka都只会存储一条。注意,这里的同样的一条数…...
JavaScript知识点1
目录 1.JavaScript中常用的数组方法有哪些? 2.JavaScript的同源策略? 3.JavaScript中的 NaN 是什么? 4.JavaScript中的split、slice、splice函数区别? 1.JavaScript中常用的数组方法有哪些? 在 JavaScript 中&…...
51单片机个人学习笔记11(AT24C02-I2C总线)
前言 本篇文章属于STC89C52单片机(以下简称单片机)的学习笔记,来源于B站教学视频。下面是这位up主的视频链接。本文为个人学习笔记,只能做参考,细节方面建议观看视频,肯定受益匪浅。 [1-1] 课程简介_哔哩…...
创建Java项目,可实现main方法运行,实现对性能数据的处理
1、Android Studio无法执行Java类的main方法问题及解决方法 Android Studio无法执行Java类的main方法问题及解决方法_delegatedbuild-CSDN博客 D:\workspaces\performanceTools\.idea 文件夹下,gardle.xml ,添加依赖 <option name"delegatedBuild"…...
JavaWeb(后端)
MVC MVC 就是 Model View Controller 的缩写,属于一种软件架构设计模式一种思想,把我们的项目分为控制器(Controller)、模型(Model)、视图(view)三个部分,model就是处理…...
828华为云征文 | 华为云Flexusx实例,高效部署Servas书签管理工具的优选平台
前言 华为云Flexus X实例,Servas书签管理工具部署的优选平台!828节日特惠,让高效管理您的知识宝藏触手可及。Flexus X实例以其卓越的算力、灵活的资源配置和智能调优技术,为Servas提供了稳定、高效的运行环境。无论是快速访问、安…...
分治法和动态规划法
一、分治法(Divide and Conquer) 定义 分治法是一种将大问题分解成若干个小问题,递归地解决这些小问题,然后将这些小问题的解合并起来得到原问题的解的算法策略。(子问题之间相互独立) 基本步骤 1.分解…...
【FreeRL】我的深度学习库构建思想
文章目录 前言参考python环境效果已复现结果 综述DQN.py(主要)算法实现参数修改细节实现显示训练,保存训练 Buffer.pyevaluate.pylearning_curves 前言 代码实现在:https://github.com/wild-firefox/FreeRL 欢迎star 参考 动手学强化学习e…...
Docker部署nginx容器无法访问80端口
问题说明 在阿里云ECS服务器上部署一台CentOS服务器,然后在里面安装了docker服务。用docker部署了nginx,开启docker中的nginx服务,映射宿主机端口80 把阿里云服务器上面的安全组放开了80端口 但是还是无法访问nginx的80web界面 问题分析 查…...
Python语言开发学习之使用Python预测天气
什么是wttr? 使用Python预测天气的第一步,我们要了解wttr是什么。wttr.in是一个面向控制台的天气预报服务,它支持各种信息表示方法,如面向终端的ANSI序列(用于控制台HTTP客户端(curl、httpie或wget))、HTML(用于web浏览器)或PNG(…...
minio实现大文件断点续传
最近工作中遇到一个需求,用户需要上传大文件几百M,为了更好的用户体验,需要支持断点续传,秒传,上传进度条等功能。需求如下: 方案有两种: 第一种:前端直接将整个大文件丢到后端&…...
掌握ComfyUI视频处理:5步构建高效AI视频工作流
掌握ComfyUI视频处理:5步构建高效AI视频工作流 【免费下载链接】ComfyUI-VideoHelperSuite Nodes related to video workflows 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-VideoHelperSuite 在AI视频创作和内容制作领域,ComfyUI-Video…...
在Windows 11 LTSC版本中找回微软商店的3分钟魔法
在Windows 11 LTSC版本中找回微软商店的3分钟魔法 【免费下载链接】LTSC-Add-MicrosoftStore Add Windows Store to Windows 11 24H2 LTSC 项目地址: https://gitcode.com/gh_mirrors/ltscad/LTSC-Add-MicrosoftStore 你是否正在使用Windows 11 24H2 LTSC版本࿰…...
Excel高手私藏技巧:用LOOKUP和FIND函数自动归类文本,快速整理海量调研问卷和评论关键词
Excel文本归类实战:用LOOKUPFIND构建智能关键词标签系统 当面对数千条开放式问卷反馈时,市场分析师小张正在为如何高效归类"用户最关注的手机功能"发愁。传统人工阅读标注不仅耗时,还容易因主观判断产生偏差。而Excel中一组被低估的…...
SSD1306 OLED屏幕驱动全攻略:从Arduino到CircuitPython实战
1. 项目概述如果你玩过Arduino、ESP32或者树莓派Pico这类微控制器,肯定遇到过一个问题:怎么把程序运行的状态、传感器的数据或者一些简单的交互界面直观地展示出来?用串口监视器看数据流当然可以,但不够“酷”,也不够便…...
如何在Windows上安装APK文件:APK Installer终极指南
如何在Windows上安装APK文件:APK Installer终极指南 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer APK Installer是一款专为Windows系统设计的Android应用…...
多线程渲染与路径算法重构:HiveWE如何革新魔兽争霸III地图编辑
多线程渲染与路径算法重构:HiveWE如何革新魔兽争霸III地图编辑 【免费下载链接】HiveWE A Warcraft III world editor. 项目地址: https://gitcode.com/gh_mirrors/hi/HiveWE 技术痛点:二十年技术债务下的地图创作瓶颈 魔兽争霸III地图编辑器自2…...
终极指南:5分钟掌握Blender四边形网格重构神器QRemeshify
终极指南:5分钟掌握Blender四边形网格重构神器QRemeshify 【免费下载链接】QRemeshify A Blender extension for an easy-to-use remesher that outputs good-quality quad topology 项目地址: https://gitcode.com/gh_mirrors/qr/QRemeshify 你是否曾在Blen…...
3步搞定Linux启动盘:Deepin Boot Maker完全使用指南
3步搞定Linux启动盘:Deepin Boot Maker完全使用指南 【免费下载链接】deepin-boot-maker 项目地址: https://gitcode.com/gh_mirrors/de/deepin-boot-maker 在Linux系统安装和维护过程中,启动盘制作是一个看似简单却充满挑战的环节。传统命令行工…...
终极AI分层工具:3分钟让单张图片变专业PSD文件
终极AI分层工具:3分钟让单张图片变专业PSD文件 【免费下载链接】layerdivider A tool to divide a single illustration into a layered structure. 项目地址: https://gitcode.com/gh_mirrors/la/layerdivider 还在为复杂的插画分层工作头疼吗?L…...
告别Xilinx思维:用Microsemi Libero为SmartFusion FPGA创建你的第一个工程(附资源清单)
告别Xilinx思维:用Microsemi Libero为SmartFusion FPGA创建你的第一个工程(附资源清单) 当习惯了Xilinx Vivado或Intel Quartus的工程师第一次打开Microsemi Libero时,那种感觉就像突然被扔进了一个陌生的城市——所有的路标都似…...
