人物动画的配置是unity重要的一部分,今天来做的是入门级的人物动画配置
1,人物模型导入后,我们会发现里面会有一些动画和人物骨骼:
如下图所示: 2,点击这个模型,就可以对模型的相关属性在inspector面板进行配置:
其中关于动画的是Rig和Animation,对于Rig需要选择的Animation Type,因为我们配置的是人物动画,所以选择的是Humanoid,还有其他的选项可以选择
如图:
而对于Animation选项的面板的主要功能为:
Animation中比较常用的就是 Loop Time,勾选上后可以让动画重复播放,当我们配置人物走动、跑这些连续动作时就可以勾选,而跳跃这种动作可以选择不勾选
直接在资源里面右键(或导航栏资源上单机)里的创建一个动画器控制器即可,命名后点击就会打开Animator面板,就可以对于动画进行配置等操作:
2.1、配置动画,首先需要创建状态,按下图在空白处右键即可创建一个空的状态,然后再Inspector面板上面就可以看到属性,可以进行详细的配置:
2.2、接下来是另外的元素,连接动画状态转换的线 ,右击动画状态就会出现创建线的选项,同时在左上角的Paramerers下的加号里面有四种选项来控制:
1,float 和 int可以使用数字大小来控制动画 2,bool类型控制可以连续触发事件 3,Trigger只能一次性触发事件
·
选中人物,为人物添加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"); } } }运行结果:
