- 0
- 0
- 约3.16千字
- 约 6页
- 2026-02-03 发布于四川
- 举报
Unity3D动画
发布于2013年07月02日由U3d/Unity3D基础/被围观104次
在Unity3D中,我们可以很方便地使用4个动画,默认的是走、跑、跳、待机动
作。但当我们根据场景需要添加其他动画时,会遇到一些问题,比如动画只一帧。
附加的动画允许你覆盖其他正在的动画。当制作附加动画时,Unity算动画
中的第一帧和当前帧的不同。然后,Unity会刚刚计算出来的不同的帧。
方法一:
1/动画分层,给设置打狗的动画优先级为2;
2
3ZJdagou。层=2;
4
5}
6
函数Update(){如果(输入.获取键按下(p))//动画.CrossFade();
7将动画优先级设置为最高。animation.CrossFade(“ZJdagou”);else
animation.CrossFade(“ZJidle”);}
方法二:
设置一个布尔变量来控制动画的。
01var动画:布尔值false;
02
03函数Update()
04
05{
06
07如果(输入.按下键(p))
08
09动画!动画;
10
11如果(动画)
12
Unity3D动画
Postedon2013年07月02日byU3d/Unity3D基础/被围观104次
在Unity3D中,我们能很方便的使用4个动画,默认的是走,跑,跳,待机动作,
可当我们根据场景需要,添加其他动画时,会遇到一些问题,如动画只一帧。
附加的动画允许你覆盖其他正在的动画。当制作附加动画时,Unity算动画
中的第一帧和当前帧的不同。然后,Unity会刚刚计算出来的不同的帧。
方法一:
1/动画分层,给设置打狗的动画优先级为2;
2
3ZJdagou.layer2;
4
5}
6
functionUpdate(){if(Input.GetKeyDown(“p”))//animation.CrossFade();
7把动画优先级设为最高。animation.CrossFade(“ZJdagou”);else
animation.CrossFade(“ZJidle”);}
方法二:
设置一个boolean变量来控制动画的。
01varAnimationy:booleanfalse;
02
03functionUpdate()
04
05{
06
07if(Input.GetKeyDown(“p”))
08
09Animationy=!Animationy;
10
11if(Animationy)
12
13动画.(“ZJdagou”);
14
15}
16
总结问题的出现:
animation.y()在动画时,是每一帧每一帧的,一个完整的连贯的动
画。functionUpdate(){}函数是每一帧刷新时会自动执行的函数。而在主角上,我们已经
拖了一个thirdcontroller,里面也有一个update()函数来控制主角的走、跑、待
机等动作,通常情况下,主角的thirdcontroller的update()函数里的待机动作是
ZJidle。我们又写了一个代码来控制主角开门、打钩的动作,代码里也有update()函数,
这样程序在每次刷新帧的时候就会执行两个update()函数,从第一个update()函数里的
y切换到另一个update(){}函数里的y()函数。这就导致了动画的卡帧。
//Unity3D手册:
解决方法:
方法一:在另一个函数中设置CrossFade,该函数用于给动画分层,这样在
update()函数执行时,会自动将
原创力文档

文档评论(0)