使用Animation组件制作动画的具体流程

动画制作流程:

 

1:如何搭配环境

  a:导入NGUI包后,按Ctrl+S保存场景,在菜单栏显示NGUI菜单;

  b:选择NGUI——Create——Sprite后,在场景中创建NGUI界面,并在上面出现一个Sprite组件;

 

 

c:选择Sprite,选择图集(Atlas)后,在上面添加一张图片,

 

 

4:设置SpriteSize的宽度与Game视图分辨率的宽度相同:(可根据需求自行设置)

如:Game视图的分辨率为1024x768,设置Size的宽度为1024

则场景界面如图所示:

 

 

2:如何制作Animation动画

 

 Unity提供了Animation编辑器,它可以为我们编辑所需的动画

 

1):首先在Hierarchy视图中选中刚才创建的Sprite,然后在Unity导航菜单栏中选择Window->Animation将呼出动画编辑窗口

 

 

2):如下图所示,Animation窗口弹出后,点击左上角那个小红点按钮。因为默认新建的Sprite对象是没有动画的,所以这里将弹出创建动画窗口。在窗口中点击Save,此时一个名叫New Animation的动画文件将被保存在Project视图中。

 

 

 

3):如下图所示,此时动画将处于编辑中模式, 在右上方的时间线栏点击鼠标键,就会出现一道竖向的红线,上面对应着Frame的时间,这时候在Transform中可以修改每一帧模型的位置,或者在编辑器中也可以修改,数值同样会被保存在每一帧的Transform中。

 

 

4):点击Animation 面板下的Curves,进入动画曲线编辑面板,可进行动画曲线的编辑右键点击曲线上的关键帧的小方块,可以弹出曲线调整菜单,可以调整关键点左右两边的曲线变化情况。

 

 

动画窗口曲线调整的一些快捷方法

    a按住Alt+鼠标左键可以拖动坐标系。
  

    b按住Shift+鼠标滚轮来调整Y轴单位大小,按住Ctrl+鼠标滚轮来调整X轴大小,直接滚轮则同时调整。

 

5):当你的帧编辑完成后,点击上图左上角那个运行的按钮。你可以在游戏视图中看到这个Sprite对象已经按照我们设定的每帧的位置在播放动画了。

动画编辑完成后,点击图中左上角小红点按钮 退出动画编辑模式。至此,Animation动画的制作已经完成了。

 

3:如何挂载动画脚本

 

(1):在退出编辑模式后,我们发现,在Sprite下多出的组件不是Animation,而是一个Animator,我们需要把Animator组件移除,在Sprite上添加一个Animation组件;

 

首先在Hierarchy视图中选中刚才创建的Sprite,然后在Unity导航菜单栏中选择Component->MisceMiscellaneous ->AnimationSprite下添加一个Animation组件。

 

 


 

 

(2):如下图所示,将刚刚编辑完的动画剪辑拖拽至Sprite对象的Animation中,勾选Play Automatically自动播放。此时运行游戏你会发现Sprite对象已经按照之前编辑的方式播放动画。

 

 

注意:因Unity版本的不同,可能会出现如下警告:

 

 

解决方法:

1. 点击New Animation”,在Inspector视图中点击右上角小锁旁的图标,选择“Debug”

 

 

2. 在“Debug”中将Legacy”选项勾选

 

 

3.按同样的操作方法,切换成“Normal”选项,会观察到“Inspector”中的变化

 

 

4.警告提示消息消失,问题解决(可通过选择Wrap Mode来指定动画的播放模式

 

4:如何保存Animation动画

 可建立一个文件夹,将生成的Animation动画文件放在一起,统一进行管理;

 

5:如何复用:

 

如图所示,在Animation组件的Animations属性下,可指定多个Animation文件,可通过名字来调用不同的动画

(注:每个Animation动画中变化的transform是相对于自身的变化,对于只改变rotationscale属性的动画,当赋给其他对象时,可以复用;但对于改变了position属性的动画,不可以直接赋给其他对象使用)

 

四:程序

如何控制动画

1: 何时播放动画

      根据策划的规划,在适当的时候通过以下方法播放动画;

   (1):获得动画所在的Animation组件

   (2):通过调用animation.Play(“动画名”);函数来播放指定动画;

 

2:如何停止动画的播放:

 (1):获得动画所在的Animation组件

 (2):通过调用animation.Stop(“动画名”);函数来停止播放指定动画;

 

3:如何得知动画播放结束:

 (1):获得动画所在的Animation组件

 (2):通过调用animation.IsPlaying(“动画名”);函数来判断指定动画是否播放结束;

 

 

Animation组件中常用的函数及其含义:

Functions函数  

  1Stop 停止所有当前Animation正在播放的动画。  

  2Rewind 倒播名称为name的动画。  

  3IsPlaying 名为name的动画正在播放吗?  

  4Play 没有任何混合的播放动画。  

  5:  CrossFade 在一定时间内淡入名称为name的动画并且淡出其他动画。  

 6:  CrossFadeQueued 在前一个动画播放完成之后淡入淡出下一个动画。  

 7: PlayQueued 在前一个动画播放完成之后直接播放下一个动画。 

8AddClip 给动画添加一个名称为newName的动画剪辑。  

9 RemoveClip 从动画列表移除剪辑。  

10 GetClipCount 取得当前动画的动画剪辑数量。  

 

Animation动画中常用的变量及其含义:

  Variables变量  

  1clip 默认的动画剪辑。  

  2playAutomatically 是否在开始的时候自动播放默认的动画  

  3wrapMode 动画剪辑播放完成之后,应该如何操作  

  4isPlaying 是否在播放任何动画?  

  5this [string name] 返回名称为name的动画状态。  

 

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值