unity人物动画配置

it2026-02-11  7

前言

人物动画的配置是unity重要的一部分,今天来做的是入门级的人物动画配置

一、首先导入模型动画

1,人物模型导入后,我们会发现里面会有一些动画和人物骨骼:

如下图所示: 2,点击这个模型,就可以对模型的相关属性在inspector面板进行配置:

其中关于动画的是Rig和Animation,对于Rig需要选择的Animation Type,因为我们配置的是人物动画,所以选择的是Humanoid,还有其他的选项可以选择

如图:

而对于Animation选项的面板的主要功能为:

Animation中比较常用的就是 Loop Time,勾选上后可以让动画重复播放,当我们配置人物走动、跑这些连续动作时就可以勾选,而跳跃这种动作可以选择不勾选

二、动画器控制器的创建

1.创建一个动画器控制器

直接在资源里面右键(或导航栏资源上单机)里的创建一个动画器控制器即可,命名后点击就会打开Animator面板,就可以对于动画进行配置等操作:

2,配置一个动画

2.1、配置动画,首先需要创建状态,按下图在空白处右键即可创建一个空的状态,然后再Inspector面板上面就可以看到属性,可以进行详细的配置:

2.2、接下来是另外的元素,连接动画状态转换的线 ,右击动画状态就会出现创建线的选项,同时在左上角的Paramerers下的加号里面有四种选项来控制:

1,float 和 int可以使用数字大小来控制动画 2,bool类型控制可以连续触发事件 3,Trigger只能一次性触发事件

·

3,为人物添加动画

选中人物,为人物添加Animator组件,并将刚刚创建的动画器控制器和骨骼拖入,

三,使用脚本调用四种切换状态来控制

首先在脚本中获取Animator:

private Animator anim; void Start() { anim = player.GetComponent<Animator>(); //player为挂在animator组件的人物 }

然后使用四种控制状态适时的控制动画的转换:

anim.SetTrigger("one"); //one为Trigger的名字 anim.SetBool("New Bool",false); //bool类型的控制 anim.SetInteger("demo", 12); //int类型

四,实例

描述:点击一系列按钮来控制人物动画的播放

动画器控制器: 场景: 代码:

using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI; public class Buttonone : MonoBehaviour { //所有Button的父节点 public Transform btnParent; //private Button[] btns; private Button[] btns; private Animator anim; //有Animator组件的人物 public GameObject player; void Start() { anim = player.GetComponent<Animator>(); //初始化数组长度 btns = new Button[btnParent.childCount]; //便利父节点下所有的按钮 for (int i = 0; i < btns.Length; i++) { //赋值按钮 btns[i] = btnParent.GetChild(i).GetComponent<Button>(); //为按钮添加点击事件 btns[i].onClick.AddListener(nClick1); } } /// <summary> /// 按钮点击事件 /// </summary> private void nClick1() { //按下时 判断当前点击的按钮的名字 string btnName = EventSystem.current.currentSelectedGameObject.GetComponent<Button>().name; if(btnName=="Button") { anim.SetTrigger("one"); } if (btnName == "Button (1)") { anim.SetTrigger("two"); } if (btnName == "Button (2)") { anim.SetTrigger("three"); } if (btnName == "Button (3)") { anim.SetTrigger("four"); } if (btnName == "Button (4)") { anim.SetTrigger("five"); } if (btnName == "Button (5)") { anim.SetTrigger("six"); } } }

运行结果:

最新回复(0)