Unity2D创建人物动画

给人物创建Animator动画组件

在素材库新建Animation文件夹

专门存动画相关的文件

Animation文件夹中创建Player文件夹

右击Player文件夹,创建Animator Controller

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

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

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

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

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

一、人物静止动画

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

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

二、人物跑步动画

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

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

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

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

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

对动画过渡进行编程

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

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

C# 复制代码
    private Animator animator;
    private Rigidbody2D rigidbody;

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

Animator的setFloat方法:docs.unity3d.com/cn/2022.3/S...

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

C# 复制代码
    public void SetAnimation()
    {
        animator.SetFloat("velocityX", Mathf.Abs(rigidbody.velocity.x));
    }

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

跑步与静止的过渡条件

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

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

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

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

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

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

相关推荐
留待舞人归4 天前
【Unity3D优化】AssetBundle的压缩格式优化
游戏·unity·游戏引擎·unity3d
Thomas游戏开发7 天前
Unity3D游戏排行榜制作与优化技术详解
前端框架·unity3d·游戏开发
Thomas_YXQ7 天前
Unity3D Shader 简析:变体与缓存详解
开发语言·前端·缓存·unity3d·shader
Thomas游戏开发9 天前
Unity3D 架构师如何处理大世界地图技术详解
前端框架·unity3d·游戏开发
Thomas游戏开发9 天前
Unity3D MMORPG 任务系统的架构与设计详解
前端框架·unity3d·游戏开发
jojo的奇妙前端20 天前
unity - 排行榜 - 头像(二)
unity3d
scott.cgi22 天前
「Unity3D」在Unity中使用C#控制显示Android的状态栏
unity·unity3d·android状态栏·c#控制android状态栏·unity显示状态栏
Thomas_YXQ1 个月前
Unity3D项目开发中的资源加密详解
游戏·3d·unity·unity3d·游戏开发
Thomas_YXQ1 个月前
Unity3D 动态骨骼性能优化详解
开发语言·网络·游戏·unity·性能优化·unity3d
程序员海军1 个月前
腾讯混元3D更新:人人都可以轻松制作一个3D模型
前端·openai·unity3d