unity旧动画系统之animation

对animation中的方法研究一二;

if (Input.GetKeyDown(KeyCode.A))
        {
            clip01.legacy = true; //默认为false,当为false时该动画剪辑将无法使用
            //添加一个指定名称的动画剪辑到animations中,可以设置第一帧和最后一帧
            //bool值--是否在最后插入一个额外的帧匹配第一帧,在制作循环动画时可以让其为true;
            _animation.AddClip(clip01, "newAnimation",0,30,true);
            _animation.Play("newAnimation"); //播放指定名称的动画剪辑;
        }

这里写图片描述

if (Input.GetKeyDown(KeyCode.A))
        {
            _animation.AddClip(clip01, "newA");
            //将新动画混合到正在播放的动画中,数值表示新动画在混合动画中的明显程度,数值越大,约明显;
            _animation.Blend("newA",0.9f);
        }
 if (Input.GetKeyDown(KeyCode.A))
        {
            //在一定时间内淡入名称为walk的动画,并淡出其他动画。注意,walk动画在animations中必须有才行
            //playmode.stopsamelayer 表示在同一层的动画将在动画淡入的时候淡出;(淡入淡出就是有过度性的切换动画)
            //playmode.stopall  表示所有层的动画在动画淡入的时候淡出;
            _animation.CrossFade("walk",1,PlayMode.StopSameLayer);
        }
if (Input.GetKeyDown(KeyCode.A))
        {
            //将在一个动画播放完成之后淡入淡出下一个动画(如果正在播放的动画时循环动画那么将跳不到walk了)
            _animation.CrossFadeQueued("walk");
            //queuemode.completeothers 表示这个动画在其他所有动画都停止播放后才开始
            //queuemode.playnow 这个动画将以一个复制的动画状态立即开始播放
            _animation.CrossFadeQueued("walk",1,QueueMode.PlayNow);
        }
if (Input.GetKeyDown(KeyCode.A))
        {
            //得到该动画组件拥有的动画剪辑数量
            print(_animation.GetClipCount());
        }
if (Input.GetKeyDown(KeyCode.A))
        {
            //判断名为attack01的动画是否正在播放
            if (_animation.IsPlaying("attack01"))
            {
                print("名为attack01的动画是否正在播放");
            }
        }
 if (Input.GetKeyDown(KeyCode.A))
        {
            //直接播放animation组件中的动画剪辑
            _animation.Play();
        }
 //if (Input.GetKeyDown(KeyCode.A))
      //  {
          //在前一个动画完成之后立即播放下一个动画
            _animation.PlayQueued("walk");
      //  }
if (Input.GetKeyDown(KeyCode.A))
        {
            //从动画列表中移除该动画剪辑
            _animation.RemoveClip("walk");
        }
if (Input.GetKeyDown(KeyCode.A))
        {
            //倒回attack01动画剪辑,就是从头开发播放
            _animation.Rewind("attack01");
        }
 if (Input.GetKeyDown(KeyCode.A))
        {
            //停止所有正在播放的动画
            _animation.Stop();
            //停止attack01动画
            _animation.Stop("attack01");
        }
if (Input.GetKeyDown(KeyCode.A))
        {
            //设置animation播放完之后的动作,pingpong表示动画一来一回循环
            _animation.wrapMode = WrapMode.PingPong;
            //播放到最后一帧,保持最后一帧的状态不会停止播放
            _animation.wrapMode = WrapMode.ClampForever;
            //循环播放动画
            _animation.wrapMode = WrapMode.Loop;
            //播放一次
            _animation.wrapMode = WrapMode.Once;
        }
if (Input.GetKeyDown(KeyCode.A))
        {
            //当渲染不可见时,动画被禁用(减小性能开销的方式)
            _animation.cullingType = AnimationCullingType.BasedOnRenderers;
            //动画消隐被禁用,即使物体没有被渲染也播放动画
            _animation.cullingType = AnimationCullingType.AlwaysAnimate;
        }
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值