在Unity3D中可以使用自带的Animation制作任意形式的动画,不过我们这篇笔记主要是学习和使用NGUI提供的Tween动画。NGUI提供的Tween库功能较为简单,主要是用来实现NGUI自身需要的一些缓动效果,同时我们也可以使用NGUI的Tween来实现一些简单的动画效果。

Tween组件

我们选中添加到舞台的任意UI组件右键就能看到添加Tween的菜单,如图:

我们通过选择添加对应的缓动组件就可以添加对应的缓动效果了,下面先简单的看一下NGUI提供的缓动组件的功能:

  1. Alpha:透明度缓动动画;
  2. Color:颜色缓动动画;
  3. Width:宽度缓动动画;
  4. Height:高度缓动动画;
  5. Position:位置缓动动画;
  6. Rotation:角度缓动动画;
  7. Scale:缩放缓动动画;
  8. Transform:转换缓动动画;

具体使用

下面我们以Alpha组件为例来看看缓动应该如何使用:

首先我们添加一个Alpha组件到我们的UI上,这个缓动效果会直接作用到我们的UI上。

我们来看看Alpha组件提供的属性(所有的缓动组件属性都大致相同):

  1. From:缓动开始的值。
  2. To:缓动结束的值。
  3. Play Style:播放的风格,一个有3种风格:Once表示播放一次、Loop表示循环播放、PingPong表示循环往复播放。
  4. Animation Curve:Unity3D自带的动画曲线编辑器,我们可以在这里编辑缓动的曲线效果,可以实现线性动画或越来越快的动画效果等。
  5. Duration:播放一次动画所需的时间。
  6. Start Delay:开始播放动画前等待的时间。
  7. Tween Group:动画所属的组,下文谈到的UIPlayTween组件中使用。
  8. Ignore TimeScale:Unity3d的TimeScale值修改时是否会影响到该缓动动画。
  9. On Finished:动画播放结束时调用指定对象的指定方法,注意拖拽到该区域的GameObject必须带有脚本组件,同时Loop和PingPong永远不会执行到该方法

动画控制

单独在组件上使用缓动动画脚本意义不大,我们还需要对缓动动画进行控制才能制作出理想的效果。

UIPlayTween

UIPlayTween是NGUI提供的一个脚本组件,其可以用来控制多个动画的播放,我们来看看其上方的参数:

  1. Tween Target:控制的目标对象,为空表示控制自身添加的缓动对象,或者可以指定特定的对象表示控制该对象上的缓动动画。
  2. Include Children:是否控制目标对象上子物体的缓动组件。
  3. Tween Group:具体控制的缓动组件的组号,只会控制设定组号为该数字的缓动组件。
  4. Trigger condition:触发机制,可以选择触发缓动动画的事件机制,比如点击当前对象或者别的事件,注意和Tween Target无关,仅针对当前对象。
  5. Play direction:播放方向:Forward从From到To播放、Toggle从From到To后从To到From如此反复、Reverse从To到From。
  6. If Target is disabled:目标物体被禁用时的处理:DoNothing不做任何处理、EnableThenPlay激活目标物体播放动画。
  7. If already playing:如果目标动画已经在播放时的处理:Continue继续播放、Restart重新播放、Restart If Not Playing等待播放完毕再播放一次。
  8. When finished:播放完毕后对目标物体的处理:Do Not Disable不做任何处理、Disable After Forward正向播放完毕后禁用物体、Disable After Reverse反向播放完毕后禁用物体。
  9. On Finished:所有动画播放完毕后的回调方法。

使用该组件时一般会将挂载在目标对象上的缓动脚本禁用,否则动画会一开始就播放,失去了控制的意义。

另外该组件控制的是一个物体或包括该物体子物体的缓动,如果是简单的缓动可以直接使用NGUI提供的组件,如果是较为复杂的缓动推荐使用专业的第三方缓动类库,如DOTween等。

UIPlayAnimation

我们说过Unity3D自带了Animation动画,而UIPlayAnimation就是控制Animation动画的UIPlayTween组件,具体使用类似于UIPlayTween组件,就不过多介绍了。

NGUI学习笔记(五):缓动的更多相关文章

  1. NGUI学习笔记汇总

    NGUI学习笔记汇总,适用于NGUI2.x,NGUI3.x 一.NGUI的直接用法 1. Attach a Collider:表示为NGUI的某些物体添加碰撞器,如果界面是用NGUI做的,只能这样添加 ...

  2. C#可扩展编程之MEF学习笔记(五):MEF高级进阶

    好久没有写博客了,今天抽空继续写MEF系列的文章.有园友提出这种系列的文章要做个目录,看起来方便,所以就抽空做了一个,放到每篇文章的最后. 前面四篇讲了MEF的基础知识,学完了前四篇,MEF中比较常用 ...

  3. NGUI 学习笔记实战之二——商城数据绑定(Ndata)

    上次笔记实现了游戏商城的UI界面,没有实现动态数据绑定,所以是远远不够的.今天采用NData来做一个商城. 如果你之前没看过,可以参考上一篇博客   NGUI 学习笔记实战——制作商城UI界面  ht ...

  4. NGUI 学习笔记实战——制作商城UI界面

    http://www.cnblogs.com/chongxin/p/3876575.html Unity3D的uGUI听说最近4.6即将推出,但是目前NGUI等UI插件大行其道并且已经非常成熟,所以我 ...

  5. (转)Qt Model/View 学习笔记 (五)——View 类

    Qt Model/View 学习笔记 (五) View 类 概念 在model/view架构中,view从model中获得数据项然后显示给用户.数据显示的方式不必与model提供的表示方式相同,可以与 ...

  6. java之jvm学习笔记五(实践写自己的类装载器)

    java之jvm学习笔记五(实践写自己的类装载器) 课程源码:http://download.csdn.net/detail/yfqnihao/4866501 前面第三和第四节我们一直在强调一句话,类 ...

  7. Learning ROS for Robotics Programming Second Edition学习笔记(五) indigo computer vision

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...

  8. Typescript 学习笔记五:类

    中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...

  9. ES6学习笔记<五> Module的操作——import、export、as

    import export 这两个家伙对应的就是es6自己的 module功能. 我们之前写的Javascript一直都没有模块化的体系,无法将一个庞大的js工程拆分成一个个功能相对独立但相互依赖的小 ...

  10. muduo网络库学习笔记(五) 链接器Connector与监听器Acceptor

    目录 muduo网络库学习笔记(五) 链接器Connector与监听器Acceptor Connector 系统函数connect 处理非阻塞connect的步骤: Connetor时序图 Accep ...

随机推荐

  1. open_table

    /* Open a table. SYNOPSIS open_table() thd Thread context. table_list Open first table in list. acti ...

  2. bzoj2251

    以前看到这道题想到的是SA,做起来不是很美观 学了SAM之后,这题简直是随便搞 ..,'] of longint; s,sa,mx,w,fa:..] of longint; i,n,last,t:lo ...

  3. Jqgrid入门-操作表格的数据(二)

    上一篇中,Jqgrid已经可以从服务端获得数据,并显示在Grid表格中了.下面说一下,如何操作表格及其数据.           jqGrid有很多方法函数,用来操作数据或者操作Grid表格本身.jq ...

  4. UVa 1153 Keep the Customer Satisfied 【贪心 优先队列】

    题意:给出n个工作,已知每个工作需要的时间last,以及截止时间end,(必须在截止时间之前完成)问最多能够完成多少个工作 首先预处理,将这n件任务按照截止时间从小到大排序 然后用一个cur记录当前做 ...

  5. sqlserver 导入/导出Excel

    --从Excel文件中,导入数据到SQL数据库中,很简单,直接用下面的语句: /*=========================================================== ...

  6. Java知识点:琐碎知识点(3)

    零碎 switch(x),x只可以是enum或byte.short.char.int. 枚举在switch-case语句作为标签时必须是枚举常量的非限定名称,否则Compile Error. Enum ...

  7. POJ 3469 Dual Core CPU (最小割建模)

    题意 现在有n个任务,两个机器A和B,每个任务要么在A上完成,要么在B上完成,而且知道每个任务在A和B机器上完成所需要的费用.然后再给m行,每行 a,b,w三个数字.表示如果a任务和b任务不在同一个机 ...

  8. ASP.NET MVC 教程汇总

    自学MVC看这里——全网最全ASP.NET MVC 教程汇总   MVC架构已深得人心,微软也不甘落后,推出了Asp.net MVC.小编特意整理博客园乃至整个网络最具价值的MVC技术原创文章,为想要 ...

  9. Mem Cgroup目录无法清理问题分析

    http://blogs.360.cn/360xitong/2013/05/02/mem-cgroup%E7%9B%AE%E5%BD%95%E6%97%A0%E6%B3%95%E6%B8%85%E7% ...

  10. [转] C# 泛型类型参数的约束

    啊.紫原文C# 泛型类型参数的约束 在定义泛型类时,可以对客户端代码能够在实例化类时用于类型参数的类型种类施加限制.如果客户端代码尝试使用某个约束所不允许的类型来实例化类,则会产生编译时错误.这些限制 ...