@[TOC]unity人物基础动画应用
1.将动画或带有动画的,模型导入到unity
直接将项目拖入资源层级就好。这里推荐一个网站,可以给导入网站的模型自动绑骨,并且可挑选动画下载。网站自身也带有很多模型可以直接下载。免费又好用,就是可能网有点慢。
链接: link
2.创建动画控制器以及动画控制器设置
1)在项目管理器中右键->创建->动画控制器。双击新建的文件就会弹出动画器的控制界面啦。
2)将动画拖取到动画器中。第一个拖进去的动画将呈现橘黄色并且entry将直接指向这个动画。意味开始的时候就执行这个动画。之后导入的动画呈现灰色需要手动创建过渡。
3)创建过渡,右键AnyState点击创建过度并链接需要的动画。第一次创建过渡并不会出现问题,第二次可能会出现anystate无法选中右键没有创建过渡的情况这个时候。先选中你需要创建过渡的动画按住shift在选中anystate此时右键就可以正常创建过渡了。
4)在左侧的参数栏里添加参数 在参数栏中点击搜索框右边的加号就行,这里建议的是选择Trigger。这里根据要使用的动画创建了三个。
5)点击anystate到各个动画的连线设置连线。在conditions中添加一个并选中为对应的Trigger。walk动画就选中walkTrigger以此类推。
6)在项目资源管理器中选择那些需要循环播放的动画。例如待机动画,走路动画等。将循环时间,循环动作勾选上。
7)在放入场上的模型上添加组件Animator。控制器选择刚刚创建的动画控制器。
3.使用代码控制动画实现人物动作
1)新建一个脚本playerControl并挂载在人物上
2)代码如下
// An highlighted block
[Header("动画")]public Animator ator;private enum CharactorState{walkTrigger,runTrigger,idleTrigger}private CharactorState newstate;private CharactorState oldstate;void Start(){ator = GetComponent<Animator>();newstate = CharactorState.idleTrigger;oldstate = CharactorState.idleTrigger;}void Update(){if (Input.GetKeyDown(KeyCode.W)){if (Input.GetKey(KeyCode.LeftShift)){newstate = CharactorState.runTrigger;}else{newstate = CharactorState.walkTrigger;}}if (Input.GetKeyUp(KeyCode.W)){newstate = CharactorState.idleTrigger;}if (newstate != oldstate){if (newstate == CharactorState.walkTrigger){ator.SetTrigger("walkTrigger");oldstate = newstate;}if (newstate == CharactorState.runTrigger){ator.SetTrigger("runTrigger");oldstate = newstate;}if (newstate == CharactorState.idleTrigger){ator.SetTrigger("idleTrigger");oldstate = newstate;}}}