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

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

相关推荐
谷宇.3 天前
【Unity3D实例-功能-移动】角色行走和奔跑的相互切换
游戏·unity·c#·unity3d·游戏开发·游戏编程
谷宇.13 天前
【Unity3D实例-功能-镜头】第三人称视觉
游戏·unity·unity3d·游戏开发·游戏编程·steam
Thomas游戏开发16 天前
Unity Root Motion 开发详解
前端框架·unity3d·游戏开发
evamango19 天前
《Unity Shader入门精要》七、基础纹理
unity3d
谷宇20 天前
【Unity3D实例-功能-移动】角色移动-通过WSAD(Rigidbody方式)
unity3d·游戏开发
谷宇21 天前
【Unity3D实例-功能-移动】角色移动-通过WSAD(Transform方式)
unity3d·游戏开发
evamango24 天前
《Unity Shader入门精要》六、Unity 中的基础光照
unity3d
字节跳动视频云技术团队1 个月前
沉浸式文旅新玩法-基于4D GS技术的真人数字人赋能VR体验升级
unity3d·音视频开发·虚拟现实
这是我581 个月前
unity实现梦日记式效果
unity·c#·游戏引擎·unity3d·游戏开发·csharp·c#11.0
kirayoshikake1 个月前
UGUI 性能优化系列:第二篇——Canvas 与 UI 元素管理
unity3d