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则进行跑步动画

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

相关推荐
Thomas_YXQ4 天前
Unity3D Shader的阴影部分法线效果详解
开发语言·游戏·unity·架构·unity3d
氦客4 天前
Unity3D入门(四) : Android和Unity3D交互 - Unity调用Android
android·unity·交互·unity3d·调用·javaobject·javaclass
Thomas_YXQ8 天前
Unity3D PostLateUpdate为何突然占用大量时间详解
开发语言·数码相机·游戏·unity·架构·unity3d
Thomas_YXQ8 天前
Unity3D 中构建行为树插件详解
游戏·unity·架构·unity3d·游戏开发
随遇而安的生活12 天前
Unity android 接USBCamera
android·unity3d
留待舞人归13 天前
【Unity杂谈】iOS 18中文字体显示问题的调查
游戏·unity·ios·游戏引擎·unity3d
吾名招财14 天前
unity3d入门教程八-飞机大战
游戏引擎·unity3d
吾名招财20 天前
unity3d入门教程五
游戏引擎·unity3d
吾名招财20 天前
unity3d入门教程六
游戏引擎·unity3d
吾名招财20 天前
unity3d入门教程七
游戏引擎·unity3d