Unity基础(三)--动画系统

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 一、动画系统
    • 1.Animation组件
    • 2.动画编辑器
  • 二、代码控制动画的播放
    • 1.动画类包含基本属性
      • 动画播放模式

一、动画系统

1.Animation组件

Unity基础(三)--动画系统_第1张图片

2.动画编辑器

  1. 选中需要添加动画的游戏物体

  2. Window—>Animation.点击Creat给物体创建动画(快捷键Ctrl+6)
    Unity基础(三)--动画系统_第2张图片

  3. 点击Add Property添加动画属性(因为是开门动画,所以添加Rotation属性)
    Unity基础(三)--动画系统_第3张图片

  4. 点击红色按钮,进行录制。

  5. 时间轴
    1、1:30表示1秒30帧
    2、双击添加关键帧

  6. Curves:编辑曲线
    Unity基础(三)--动画系统_第4张图片

  7. 将创建好的动画赋值给Animation组件
    Unity基础(三)--动画系统_第5张图片

二、代码控制动画的播放

1.动画类包含基本属性

  1. IsPlaying:名为name的动画正在播放吗?
    1、bool isPlay=animation.isPlaying;
    2、bool isPlay=animation.IsPlaying(“动画名”);
  2. Play:不带有任何混合的播放动画。
    1、animation.Playig(“动画名”);
  3. PlayQueued:在前一个动画播放完成之后直接播放下一个动画。
    设置播放顺序
    1、animation.PlayQueued(“动画名”);
  4. CrossFade:在一定时间内淡入名称为name的动画并且淡出其他动画。
    1、animation.CrossFade(“动画名”);
  5. animation[“动画名”].speed=1;播放速度:0不播,-1倒播,2快播
  6. animation[“动画名”].length;动画总的播放长度
  7. animation[“动画名”].time;动画开始播放时间
  8. wrapMode:动画剪辑播放完成之后,应该如何操作?
    animation[“动画名”].wrapMode=WrapMode.PingPong;

点击鼠标进行开门和关门的动画控制(示例):

    private bool doorState=false;
    public string animName = "Door";//方便之后统一修改动画名称

   private void OnMouseDown()
    {
     
        //如果开门的状态
        if(doorState)
        {
     
            //如果开门动画播完
            if(anim.isPlaying==false)
            //从最后开始播放
            anim[animName].time = anim[animName].length;
            //关门操作
            anim[animName].speed = -1;
   
        }
        else
        {
     
            //开门操作
            anim[animName].speed = 1;
        }
        //播放动画
        anim.Play(animName);
        doorState = !doorState;
    }

动画播放模式

Unity基础(三)--动画系统_第6张图片

  1. Once:播放一次
  2. Loop:循环播放
  3. Ping Pong:来回播放
  4. Clamp Forever:一直固定在动画最后一帧

你可能感兴趣的:(#,Unity基础学习,游戏开发,unity)