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游戏开发8 小时前
Unity3D 逻辑服的Entity, ComponentData与System划分详解
前端框架·unity3d·游戏开发
大眼睛姑娘1 天前
unity运行状态下移动、旋转、缩放控制模型
unity3d
lin zaixi()13 天前
手把手教你写Unity3D飞机大战(2)天空盒布置
unity3d
Thomas_YXQ18 天前
Unity3D中管理Shader效果详解
开发语言·游戏·unity·unity3d·游戏开发
羊羊203518 天前
线性代数:Matrix2x2和Matrix3x3
线性代数·数学建模·unity3d
天人合一peng23 天前
Unity hub登录时一直无法进入license
unity3d
天涯学馆25 天前
Three.js灯光阴影与动画交互
前端·unity3d·three.js
Cool-浩1 个月前
Unity3D 开发技巧
开发语言·前端·unity·c#·unity3d·实用技巧·unity开发教程
Cool-浩1 个月前
Unity Vision Pro 保姆级开发教程-PolySpatial VisionOS Samples 示例场景
unity·游戏引擎·unity3d·案例·polyspatial·applevision pro·vision pro教程
Thomas_YXQ1 个月前
Unity3D中Excel表格的数据处理模块详解
linux·windows·算法·excel·unity3d·游戏开发