首页 > 其他分享 >Unity引擎2D游戏开发,创建人物动画

Unity引擎2D游戏开发,创建人物动画

时间:2023-12-13 17:34:04浏览次数:37  
标签:动画 静止 2D Unity Animation 跑步 选择 Animator

给人物创建Animator动画组件

image

在素材库新建Animation文件夹

专门存动画相关的文件

image

Animation文件夹中创建Player文件夹

image

右击Player文件夹,创建Animator Controller

image

将新建的Animator Controller赋予人物中Animator组件中的Controller

image

选择Window,选择Animation,打开Animator窗口

image

选中Player人物,然后选择Window,选择Animation,再选择子菜单的Animation

image

在下方Animation窗口中,选择左侧的Clip,选择Create new Clip

选择好文件夹后,重命名为BlueIdle,为蓝色衣服小人静止时的动画。其他动画,以此类推。

image

一、人物静止动画

选择好小人的静止动画,拖入Animation时间轴窗口中

image

image
如果动画速度过快,则调整Samples数值,数值越大,播放速率越快

二、人物跑步动画

选择好小人的跑步动画,拖入到新建立的跑步动画Clip中

image

由于跑步动画是需要触发才开始执行的,所以在Animator窗口中,新建一个X轴加值的变量velocityX
image

将跑步动画和静止动画相连接

在Animator主窗口中,可以看到BlueIdle和Run的动画方块。BlueIdle动画是可以转换到Run动画,Run动画也可以转换到BlueIdle动画。因此,将它们互相连接。右击方块,选择Make Transition即可。
image

点击箭头,在右侧可以选择关闭Has Exit Time(退出时间),Fixed DurationTransition Duration(过渡动画)
image

对动画过渡进行编程

在素材库,在Scripts→Player中,新建一个Animation C#脚本
image

在C#脚本中,获取Animator组件和RigidBody组件

private Animator animator;
private Rigidbody2D rigidbody;

private void Awake()
{
    animator = GetComponent<Animator>();
    rigidbody = GetComponent<Rigidbody2D>();
}

Animator的setFloat方法:https://docs.unity3d.com/cn/2022.3/ScriptReference/Animator.SetFloat.html

对Animator赋值,使其影响动画的过渡

public void SetAnimation()
{
    animator.SetFloat("velocityX", Mathf.Abs(rigidbody.velocity.x));
}

对velocityX赋值,赋予2D刚体加速度的x轴加值的绝对值

跑步与静止的过渡条件

选择跑步动画与静止动画的箭头,在右侧Conditions中点击加号,选择velocityX和Greater。当此值大于某个值,则进行跑步动画。此处该值为2.5。
image

若选择Less,该加值为某个值,就进行静止动画。此处改值为0.1。
image

根据之前所述,建立一个走路动画,进行过渡条件设置

将走路、跑步、静止动画相连接(走路可过渡跑步、跑步可过渡走路等)
image

走路动画的加速度大于2.5则进行跑步动画
image

同理,则跑步动画过渡为走路动画
image

标签:动画,静止,2D,Unity,Animation,跑步,选择,Animator
From: https://www.cnblogs.com/xinlindeyu/p/17899557.html

相关文章

  • Unity引擎2D游戏开发,解决空中无限跳跃以及黏墙问题
    一、解决空中无限跳跃解决空中无限跳跃的根本就是添加落地检测,即在地面上才能进行跳跃(二段跳功能以后再开发)在文件夹内新建PhysicsCheck物理检测脚本在里面开发人物物理检测相关功能添加isGround布尔值变量,接触地面则为1,空中则为0。以及两种检测变量:checkRadius检测半径......
  • Unity升级到2022版本后,打开Spine会卡住
    1)Unity升级到2022版本后,打开Spine会卡住2)iPhone在同时播放多个音效的时候会压低某些音源的音量3)在Y77手机上出现IMGSRV:GetMainShaderConstantBufferBaseAddress:Unsupported4)UE4打包后在部分安卓机型出现“花屏”这是第364篇UWA技术知识分享的推送,精选了UWA社区的热门话题,涵盖......
  • Unity引擎2D游戏开发,C#实现人物跳跃
    一、Component内,实现变量参数分栏[Header("XXXX")]二、在新建的InputActions中添加跳跃绑定三、在2D刚体所绑定的C#代码中调用InputActions中新建的跳跃动作在unity中,跳跃动作相当于对2D刚体施加Y轴方向的力。因此,增加一个力数值的变量jumpForce。publicfloatjumpF......
  • Unity3D 第一人称角色控制器,第一人称相机,摄像机的关系详解
    Unity3D是一款强大的游戏开发引擎,可以用于创建各种类型的游戏。在游戏中,第一人称角色控制器、第一人称相机和摄像机是密切相关的组件,它们共同协作来实现游戏的第一人称视角。下面将详细解释它们之间的关系,并给出代码实现。对啦!这里有个游戏开发交流小组里面聚集了一帮热爱学习游......
  • JQuery-JQuery动画
     1.介绍:JQuery是一个JavaScript库。极大简化了JS编程。拥有强大的选择器支持,支持CSS1-CSS3几乎所有的选择器,及JQ独创的高级而复杂的选择器。解决不同的浏览器的兼容问题;代码简洁,功能强大,易于理解... 注入:JQuery官网:jquery.com......
  • 360度解析Android动画:哪个更引人注目?
    介绍动画是Android应用中不可或缺的一部分,它可以让应用更加生动、有趣,还可以提升用户体验。Android提供了多种动画实现方式,在本文中,我们将深入研究Android动画的方方面面。从基本的View动画和属性动画开始。我们将介绍高级动画技巧,包括使用自定义插值器、实现复杂效果,以及性能优化......
  • 如何在Unity 3D项目中新建URP项目(Unity版本2021.3.29)
    Step1在UnityHub中新建3D项目Step2在新建好Unity项目当中选择window=>PackageManager=>选择UnityRegistry并搜索UniversalRP点击Install安装Step3在PackageManager中安装完成后,回到Unity编辑器当中查看项目Package发现新增CoreRPLibrary和UniversalRP证明UR......
  • 「杂题乱刷」CF1272D
    题目链接CF1272DRemoveOneElement题意简述给定一个长度为\(n\)的序列,你需要求出至多删除一个数后的这个序列的最长上升子串。解题思路首先我们可以想一下这题的弱化版,给定一个长度为\(n\)的序列,你需要求出至多删除一个数后的这个序列的最长上升子序列。这题我们可以......
  • 【开源项目推荐】-支持GPT的智能数据库客户端与报表工具——Chat2DB
    2023年是人工智能爆火的一年,ChatGPT为首的一系列的大模型的出现,让生成式人工智能彻底火了一把。但有人会说,GPT对于我们数据开发来说并没有什么作用啊?今天为大家推荐的开源项目,就是GPT在数据领域的一个优秀实践项目。让我们一起来看看吧~Chat2DB是一个集成了ChatGPT功能的数据库S......
  • Unity3D帧同步的原理以及项目开发中可能遇到的问题与解决方案
    一、Unity3D帧同步的原理帧同步是指将游戏中的每一帧的状态数据同步给所有的客户端,使得所有客户端的游戏画面都保持一致。在Unity3D中,帧同步一般分为两种模式:客户端模式和服务器模式。对啦!这里有个游戏开发交流小组里面聚集了一帮热爱学习游戏的零基础小白,也有一些正在从事游戏开......