[求助]Unity5.0用Animation.play无法播放Legacy序列帧动画

megarfield 2018-06-05 12:38:03
在Unity中用一些图只做了2个序列帧的Animation动画(anim文件),设置为Legacy,wrapmode设置为once,当然创建动画时自动创建了Animator(不过不想用这个)。
创建一个gameobject后,拖了一张sprite给它,并且为他添加了Animation组件,将第一个动画(Run)拖进Animation,另一个加入成为Elements。
然后挂了一个这样的脚本:

using UnityEngine;

public class temp1 : MonoBehaviour {

private Animation myAni;

// Use this for initialization
void Start () {
myAni = GetComponent<Animation>();
myAni.wrapMode = WrapMode.Once;
}

// Update is called once per frame
void Update () {
if (Input.GetKey(KeyCode.A))
{
myAni.Play("Attack");
Debug.Log(myAni.clip);
}
}
}

结果按下A时动画不会播放,不按A的时候也不会播放Run。
Debug结果是:Run (UnityEngine.AnimationClip)

是不是放在Update里面看不出播?
应该如何写呢?谢谢
...全文
1527 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
不用问了,这个是个BUG,我从5.x就开始遇到这个问题了,到现在2018.2都没有解决,Animation组件是无法播放sprite序列帧动画的,运行时其实animation已经在播放了,但是换图换不了,无解。
AdvancePikachu 2018-06-05
  • 打赏
  • 举报
回复
补充一点:如果打算用animation制作anim文件,最好在制作的时候添加Animation组件,再创建anim文件!
AdvancePikachu 2018-06-05
  • 打赏
  • 举报
回复
1、unity 用animation做的anim文件只有一个选项就是 Wrap Mode..... 2、Debug有结果,并且没有报错,说明play已经执行。 3、 myAni.Play("Attack"),说明你的clip名字是Attack,但看你需求是要播放Run,怀疑是否名字错误。 4、如果以上都没有问题,那可能是你的anim文件编辑错误了,重新编辑一个anim文件试试。

2,535

社区成员

发帖
与我相关
我的任务
社区描述
Unity3D相关内容讨论专区
游戏unity 技术论坛(原bbs)
社区管理员
  • Unity3D
  • 芝麻粒儿
  • 「已注销」
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

Unity3D社区公告:

  1. 社区致力于解决各种Unity3D相关的“疑难杂症”。
  2. 社区不允许发布与Unity3D或相关技术无关内容。
  3. 社区版主邀请各位一道为打造优秀社区不懈努力。

试试用AI创作助手写篇文章吧