项目实训- 基于unity的2D多人乱斗闯关游戏设计与开发(七1、酷跑——人物角色制作)

本文介绍了基于Unity的2D多人乱斗闯关游戏的开发,重点讲解了人物角色的动画序列帧制作,包括切割序列帧、创建动画文件和控制动画状态的切换。此外,还详细阐述了角色移动的实现,如添加Rigidbody2D组件、调整重力和碰撞检测,以及脚本编写中的跳跃和二段跳功能。最后提到了事件管理,特别是玩家跳跃事件的处理。
摘要由CSDN通过智能技术生成

一、前言

(1) 人物角色制作
(2) 地面制作
(3) 游戏结束和重新开始

二、人物动画序列帧

1.将角色的序列帧图导入到工程中
2.切割序列帧:

  • 将图片的Texture Type设置为Sprite(2D and UI),把Sprite Mode设置为Multiple
    在这里插入图片描述在这里插入图片描述

  • 点击Sprite Editor,在显示出来的窗口中进行切割

  • 编辑图片,点击左上角的Slice,设置Type:Grid,Pixel Size,设置好后点击slice分隔
    效果如图在这里插入图片描述 3.选中所有的序列帧,拖入到Hierarchy窗口,弹出创建窗口,把动画文件存为run.anim,项目中会生成序列帧动画
    4.在role_run_0节点添加Sprite Render和Animation组件,Animation中点击Show Sample Rate调节动画帧率
    在这里插入图片描述

三、控制角色动画状态的切换

一段跳是在空中保持滑翔的动画,只有一帧:
在这里插入图片描述
二段跳是在空中翻转的动画,有五帧
在这里插入图片描述
打开刚刚制作的跑动画生成的role.controller动画控制器,添加jump1(一段跳)、jump2(二段跳)到控制器中,组织动画状态过渡连线图如下:

在这里插入图片描述为了控制动画状态的过渡,添加两个bool类型的变量:IsJumping1IsJumping2,编辑状态过渡的条件,从run过渡到jump1的条件为I是Jumping1为true
由于跳跃是随时打断run的动画并且不需要动画融合的效果,所以把Has Exit Time的勾去掉,这样在run的任何一帧都会立即切刀jump1,而无需等待run的其他序列帧

过渡 条件 Has Exit Time
run->jump1 IsJumping1为true ×
jump1->run IsJumping1为false ×
jump1->jump2 IsJumping2为true ×
jump2 ->jump1 IsJumping2为false ×

四、角色移动

1、给角色添加RigidBody2D和BoxCollider2D组件
2、给角色的重力Gravity Scale调整为5,使角色有下落的效果,同时选定Freeze Rotation Z,防止角色碰到地面的时候发生Z轴的旋转
同时调整碰撞器的大小和位置,使其与角色主体相符
在这里插入图片描述
3、创建脚本
(1)设置玩家一段跳和二段跳的速度,并设置按空格键后玩家跳跃,连续按两下空格键会进行二段跳跃,二段跳会在空中进行翻滚;
(2)触发器事件设置碰到金币时金币消失,并通过GameMgr金币数量增加;
(3)碰撞事件检测碰到地面时,一段跳二段跳均失效,且跳跃速度变为0;碰到游戏边界时游戏结束。
将其挂在role预设上

using UnityEngine;

public class Player : MonoBehaviour
{
   
    /// <summary>
    /// 跳跃次数
    /// </summary>
    private int m_jumpCount = 0;

    private Animator m_ani;
    private Rigidbody2D m_rig;

    /// <summary>
    /// 一段跳速度
    /// </summary>
    public float JumpSpeed = 20;
    /// <summary>
    /// 二段跳速度
    /// </summary>
    public float SecondJumpSpeed = 15;

    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值