【制作100个unity游戏之26】unity2d横版卷轴动作类游戏3(附带项目源码)

简介: 【制作100个unity游戏之26】unity2d横版卷轴动作类游戏3(附带项目源码)

前言

欢迎来到【制作100个Unity游戏】系列!本系列将引导您一步步学习如何使用Unity开发各种类型的游戏。在这第26篇中,我们将探索如何用unity制作一个unity2d横版卷轴动作类游戏,我会附带项目源码,以便你更好理解它。

本节主要是控制人物动画切换

动画

对动画还不了解的可以看我这篇文章:【Unity游戏开发教程】零基础带你从小白到超神27——混合状态,混合动画,动画分类

走路动画

跑步动画

跑步走路切换

代码控制动画切换

public class PlayerAnimation : MonoBehaviour
{
    private Animator anim; // 动画控制器
    private Rigidbody2D rb; // 刚体组件

    private void Awake()
    {
        // 获取组件引用
        anim = GetComponent<Animator>();
        rb = GetComponent<Rigidbody2D>();
    }

    private void Update()
    {
        SetAnimation(); // 更新动画状态
    }

    public void SetAnimation()
    {
        // 根据水平速度设置动画参数
        anim.SetFloat("velocityX", Mathf.Abs(rb.velocity.x));
    }
}

效果,如果用的不是手柄,pc可能不好测走路动画效果(当然你可以简单粗暴的)

跳跃动画

跳跃动画分为开始起跳 起跳中 顶点 下落 落地

跳跃测试,看rigidbody2d Velocity y值的变化来配置跳跃动画的切换条件

混合树控制不同的跳跃动画切换

过渡到落地动画

确保落地动画播放100%,再转为待机动画,所以我们这里退出时间设置为1

修改PlayerAnimation,切换动画状态

private PhysicsCheck physicsCheck;

physicsCheck = GetComponent<PhysicsCheck>();

public void SetAnimation()
{
    // 根据水平速度设置动画参数
    anim.SetFloat("velocityX", Mathf.Abs(rb.velocity.x));
    // 根据垂直速度设置动画参数
    anim.SetFloat("velocityY", rb.velocity.y);
    anim.SetBool("isGround", physicsCheck.isGround);
}

效果

现在落地跑步时,你会发现落地瞬间还是在执行落地下蹲动画,如果你希望马上打断下蹲动画,可以这里连接Exit满足条件会直接打断现在的动画状态,直接进入下一个状态

效果

源码

源码不出意外的话我会放在最后一节

目录
相关文章
|
3天前
|
存储 JSON 关系型数据库
【unity实战】制作unity数据保存和加载系统——大型游戏存储的最优解
【unity实战】制作unity数据保存和加载系统——大型游戏存储的最优解
12 2
|
3天前
|
存储 JSON 图形学
【unity实战】制作unity数据保存和加载系统——小型游戏存储的最优解
【unity实战】制作unity数据保存和加载系统——小型游戏存储的最优解
6 0
|
3天前
|
图形学
【制作100个unity游戏之29】使用unity复刻经典游戏《愤怒的小鸟》(完结,附带项目源码)(下)
【制作100个unity游戏之29】使用unity复刻经典游戏《愤怒的小鸟》(完结,附带项目源码)(下)
8 0
|
3天前
|
图形学
【制作100个unity游戏之27】使用unity复刻经典游戏《植物大战僵尸》,制作属于自己的植物大战僵尸随机版和杂交版3(附带项目源码)
【制作100个unity游戏之27】使用unity复刻经典游戏《植物大战僵尸》,制作属于自己的植物大战僵尸随机版和杂交版3(附带项目源码)
14 2
|
3天前
|
图形学
【制作100个unity游戏之28】花半天时间用unity复刻童年4399经典小游戏《黄金矿工》(附带项目源码)
【制作100个unity游戏之28】花半天时间用unity复刻童年4399经典小游戏《黄金矿工》(附带项目源码)
13 0
|
3天前
|
图形学
【制作100个unity游戏之29】使用unity复刻经典游戏《愤怒的小鸟》(完结,附带项目源码)(上)
【制作100个unity游戏之29】使用unity复刻经典游戏《愤怒的小鸟》(完结,附带项目源码)
10 2
|
3天前
|
图形学
【制作100个unity游戏之27】使用unity复刻经典游戏《植物大战僵尸》,制作属于自己的植物大战僵尸随机版和杂交版2(附带项目源码)
【制作100个unity游戏之27】使用unity复刻经典游戏《植物大战僵尸》,制作属于自己的植物大战僵尸随机版和杂交版2(附带项目源码)
8 1
|
3天前
|
存储 JSON 关系型数据库
【制作100个unity游戏之27】使用unity复刻经典游戏《植物大战僵尸》,制作属于自己的植物大战僵尸随机版和杂交版13(完结,附带项目源码)
【制作100个unity游戏之27】使用unity复刻经典游戏《植物大战僵尸》,制作属于自己的植物大战僵尸随机版和杂交版13(完结,附带项目源码)
9 0
|
3天前
|
图形学
【制作100个unity游戏之27】使用unity复刻经典游戏《植物大战僵尸》,制作属于自己的植物大战僵尸随机版和杂交版12(附带项目源码)
【制作100个unity游戏之27】使用unity复刻经典游戏《植物大战僵尸》,制作属于自己的植物大战僵尸随机版和杂交版12(附带项目源码)
9 0
|
3天前
|
存储 图形学
【制作100个unity游戏之27】使用unity复刻经典游戏《植物大战僵尸》,制作属于自己的植物大战僵尸随机版和杂交版11(附带项目源码)
【制作100个unity游戏之27】使用unity复刻经典游戏《植物大战僵尸》,制作属于自己的植物大战僵尸随机版和杂交版11(附带项目源码)
8 0