Unity使用Animator做两个动画css3 过渡动画切换有问题

用户名:shengruqing
访问量:2063
注册日期:
阅读量:1297
阅读量:3317
阅读量:448113
阅读量:1133097
51CTO推荐博文
650) this.width=650;" src="http://m3./farm4/d//F383924ACCBC82C9876DCB1F8070C05A_B500_900_404_257.jpeg" width="404" height="257" style="margin:0padding:0border:0vertical-align:background:" alt="F383924ACCBC82C9876DCB1F8070C05A_B500_90" />首先 我们要先研究下 他的动作关系 这个角色的动作有Idle Attack3-1 Attack3-2 &Attack3 &&&&那么我们要使用 Unity新动画系统的 Animator Controller 来进行 动画的连接创建一个 &Animator Controller 把需要连击的动画拖拽到动画控制器里面,然后把动画连接在一起Idle---&Attack3-1---&Attack3-2---&Attack3-3650) this.width=650;" src="http://m1./farm5/d//6EFF12BC82B_B500_900_500_230.jpeg" width="500" height="230" style="margin:0padding:0border:0vertical-align:background:" alt="6EFF12BC82B_B500_90" />定义一个Int型参数命名为ActionID用来控制动画执行顺序动画顺序设置如下:Idle--&Attack3-1的ActionID=0;Attack3-1-&Attack3-2的ActionID=1;Attack3-2--&Attack3-3的ActionID=2;接下来就进入到代码阶段了using&UnityE
using&System.C
&&&&&&&&&&&&&&&&
public&class&gj&:&MonoBehaviour
&&&&private&Animator&//获取人物
&&&&private&AnimatorStateInfo&animStateI//获取动画状态信息
&&&&private&const&string&IdleState&=&"Idle";//获取默认动作
&&&&private&const&string&Attack1State&=&"Attack3-1";//获取攻击1
&&&&private&const&string&Attack2State&=&"Attack3-2";//获取攻击2
&&&&private&const&string&Attack3State&=&"Attack3-3";//获取攻击3
&&&&private&int&HitCount&=&0;&&//&当前连击数(即&玩家按下攻击键的次数)&
&&&&&&&&&&&&&&&&
&&&&void&Start()
&&&&&&&&anim&=&this.gameObject.GetComponent&Animator&();//获取动画组件
&&&&&&&&&&&&&&&&
&&&&void&Update()
&&&&&&&&animStateInfo&=&anim.GetCurrentAnimatorStateInfo(0);
&&&&&&&&if&(!animStateInfo.IsName(IdleState)&&animStateInfo.normalizedTime&1f)
&&&&&&&&&&&&//&每次设置完参数之后,都应该在下一帧开始时将参数设置清空,避免连续切换&&
&&&&&&&&&&&&anim.SetInteger("ActionID",&0);
&&&&&&&&&&&&HitCount&=&0;
&&&&&&&&if&(Input.GetKey(KeyCode.Space))
&&&&&&&&&&&&//如果按了空格键则执行攻击方法
&&&&&&&&&&&&attack();
&&&&&&&&&&&&&&&&
&&&&void&attack()
&&&&&&&&if&(animStateInfo.IsName(IdleState)&&HitCount==0&&animStateInfo.normalizedTime&0.4f)
&&&&&&&&&&&&//&在待命状态下,按下攻击键,进入攻击1状态,并记录连击数为1&
&&&&&&&&&&&&anim.SetInteger("ActionID",1);
&&&&&&&&&&&&HitCount&=&1;
&&&&&&&&if&(animStateInfo.IsName(Attack1State)&&HitCount==1&&animStateInfo.normalizedTime&0.5f)
&&&&&&&&&&&&//&在攻击1状态下,按下攻击键,记录连击数为2(切换状态在Update()中)&&
&&&&&&&&&&&&anim.SetInteger("ActionID",2);
&&&&&&&&&&&&HitCount&=&2;
&&&&&&&&if&(animStateInfo.IsName(Attack2State)&&HitCount==2&&animStateInfo.normalizedTime&0.6f)
&&&&&&&&&&&&//&在攻击2状态下,按下攻击键,记录连击数为3(切换状态在Update()中)&&
&&&&&&&&&&&&anim.SetInteger("ActionID",3);
&&&&&&&&&&&&HitCount&=&3;
}最终效果预览650) this.width=650;" src="http://m2./farm5/d//AD26EFE48ADEE8AFB54E833_ORIG_369_364.gif" width="369" height="364" style="margin:0padding:0border:0vertical-align:background:" alt="AD26EFE48ADEE8AFB54E833_ORIG_36" />本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:未分类┆阅读(0)┆评论(0)鏌ョ湅: 5626|鍥炲?: 9
姹傛暀Animator 鍔ㄧ敾閲嶅?闂??
褰撳墠绂荤嚎
涓婚?甯栧瓙璐$尞
鍒濈骇UU鏃忊}

我要回帖

更多关于 vue router 过渡动画 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信