Unity动画教程:解决自定义动画仅播放一帧问题.pdfVIP

  • 0
  • 0
  • 约3.16千字
  • 约 6页
  • 2026-02-03 发布于四川
  • 举报

Unity动画教程:解决自定义动画仅播放一帧问题.pdf

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)

1亿VIP精品文档

相关文档