NGUI学习笔记(五):缓动
在Unity3D中可以使用自带的Animation制作任意形式的动画,不过我们这篇笔记主要是学习和使用NGUI提供的Tween动画。NGUI提供的Tween库功能较为简单,主要是用来实现NGUI自身需要的一些缓动效果,同时我们也可以使用NGUI的Tween来实现一些简单的动画效果。
Tween组件
我们选中添加到舞台的任意UI组件右键就能看到添加Tween的菜单,如图:

我们通过选择添加对应的缓动组件就可以添加对应的缓动效果了,下面先简单的看一下NGUI提供的缓动组件的功能:
- Alpha:透明度缓动动画;
- Color:颜色缓动动画;
- Width:宽度缓动动画;
- Height:高度缓动动画;
- Position:位置缓动动画;
- Rotation:角度缓动动画;
- Scale:缩放缓动动画;
- Transform:转换缓动动画;
具体使用
下面我们以Alpha组件为例来看看缓动应该如何使用:
首先我们添加一个Alpha组件到我们的UI上,这个缓动效果会直接作用到我们的UI上。
我们来看看Alpha组件提供的属性(所有的缓动组件属性都大致相同):

- From:缓动开始的值。
- To:缓动结束的值。
- Play Style:播放的风格,一个有3种风格:Once表示播放一次、Loop表示循环播放、PingPong表示循环往复播放。
- Animation Curve:Unity3D自带的动画曲线编辑器,我们可以在这里编辑缓动的曲线效果,可以实现线性动画或越来越快的动画效果等。
- Duration:播放一次动画所需的时间。
- Start Delay:开始播放动画前等待的时间。
- Tween Group:动画所属的组,下文谈到的UIPlayTween组件中使用。
- Ignore TimeScale:Unity3d的TimeScale值修改时是否会影响到该缓动动画。
- On Finished:动画播放结束时调用指定对象的指定方法,注意拖拽到该区域的GameObject必须带有脚本组件,同时Loop和PingPong永远不会执行到该方法。
动画控制
单独在组件上使用缓动动画脚本意义不大,我们还需要对缓动动画进行控制才能制作出理想的效果。
UIPlayTween
UIPlayTween是NGUI提供的一个脚本组件,其可以用来控制多个动画的播放,我们来看看其上方的参数:

- Tween Target:控制的目标对象,为空表示控制自身添加的缓动对象,或者可以指定特定的对象表示控制该对象上的缓动动画。
- Include Children:是否控制目标对象上子物体的缓动组件。
- Tween Group:具体控制的缓动组件的组号,只会控制设定组号为该数字的缓动组件。
- Trigger condition:触发机制,可以选择触发缓动动画的事件机制,比如点击当前对象或者别的事件,注意和Tween Target无关,仅针对当前对象。
- Play direction:播放方向:Forward从From到To播放、Toggle从From到To后从To到From如此反复、Reverse从To到From。
- If Target is disabled:目标物体被禁用时的处理:DoNothing不做任何处理、EnableThenPlay激活目标物体播放动画。
- If already playing:如果目标动画已经在播放时的处理:Continue继续播放、Restart重新播放、Restart If Not Playing等待播放完毕再播放一次。
- When finished:播放完毕后对目标物体的处理:Do Not Disable不做任何处理、Disable After Forward正向播放完毕后禁用物体、Disable After Reverse反向播放完毕后禁用物体。
- On Finished:所有动画播放完毕后的回调方法。
使用该组件时一般会将挂载在目标对象上的缓动脚本禁用,否则动画会一开始就播放,失去了控制的意义。
另外该组件控制的是一个物体或包括该物体子物体的缓动,如果是简单的缓动可以直接使用NGUI提供的组件,如果是较为复杂的缓动推荐使用专业的第三方缓动类库,如DOTween等。
UIPlayAnimation
我们说过Unity3D自带了Animation动画,而UIPlayAnimation就是控制Animation动画的UIPlayTween组件,具体使用类似于UIPlayTween组件,就不过多介绍了。
NGUI学习笔记(五):缓动的更多相关文章
- NGUI学习笔记汇总
NGUI学习笔记汇总,适用于NGUI2.x,NGUI3.x 一.NGUI的直接用法 1. Attach a Collider:表示为NGUI的某些物体添加碰撞器,如果界面是用NGUI做的,只能这样添加 ...
- C#可扩展编程之MEF学习笔记(五):MEF高级进阶
好久没有写博客了,今天抽空继续写MEF系列的文章.有园友提出这种系列的文章要做个目录,看起来方便,所以就抽空做了一个,放到每篇文章的最后. 前面四篇讲了MEF的基础知识,学完了前四篇,MEF中比较常用 ...
- NGUI 学习笔记实战之二——商城数据绑定(Ndata)
上次笔记实现了游戏商城的UI界面,没有实现动态数据绑定,所以是远远不够的.今天采用NData来做一个商城. 如果你之前没看过,可以参考上一篇博客 NGUI 学习笔记实战——制作商城UI界面 ht ...
- NGUI 学习笔记实战——制作商城UI界面
http://www.cnblogs.com/chongxin/p/3876575.html Unity3D的uGUI听说最近4.6即将推出,但是目前NGUI等UI插件大行其道并且已经非常成熟,所以我 ...
- (转)Qt Model/View 学习笔记 (五)——View 类
Qt Model/View 学习笔记 (五) View 类 概念 在model/view架构中,view从model中获得数据项然后显示给用户.数据显示的方式不必与model提供的表示方式相同,可以与 ...
- java之jvm学习笔记五(实践写自己的类装载器)
java之jvm学习笔记五(实践写自己的类装载器) 课程源码:http://download.csdn.net/detail/yfqnihao/4866501 前面第三和第四节我们一直在强调一句话,类 ...
- Learning ROS for Robotics Programming Second Edition学习笔记(五) indigo computer vision
中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...
- Typescript 学习笔记五:类
中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...
- ES6学习笔记<五> Module的操作——import、export、as
import export 这两个家伙对应的就是es6自己的 module功能. 我们之前写的Javascript一直都没有模块化的体系,无法将一个庞大的js工程拆分成一个个功能相对独立但相互依赖的小 ...
- muduo网络库学习笔记(五) 链接器Connector与监听器Acceptor
目录 muduo网络库学习笔记(五) 链接器Connector与监听器Acceptor Connector 系统函数connect 处理非阻塞connect的步骤: Connetor时序图 Accep ...
随机推荐
- Java [Leetcode 144]Binary Tree Preorder Traversal
题目描述: Given a binary tree, return the preorder traversal of its nodes' values. For example:Given bin ...
- oracle等待事件以及解决方案
我们可以通过视图v$session_wait来查看系统当前的等待事件,以及与等待事件相对应的资源的相关信息,从而可确定出产生瓶颈的类型及其对象. v$session_wait的p1.p2.p3告诉我们 ...
- linux面试题2
1. 在Linux系统中,以文件的方式访问设备 2. Linux内核引导时,从文件 /etc/fstab 中读取要加载的文件系统 3. Linux文件系统中每个文件用inode来标识 4. 链接分为 ...
- 增加SharePoint2010修改域密码功能
转:http://blog.163.com/hr_test/blog/static/16485210720137953131694/ 前提 SharePoint2010的用户基于AD的,因此修改密码是 ...
- redis 和 bloom filter
今天打算使用redis 的bitset搞一个 bloom filter, 这样的好处是可以节省内存,坏处是可能在会有一些数据因为提示重复而无法保存. bloom filter 的大体原理就是通过不同的 ...
- UVALive 5029
用字典树来查询,关键是怎么处理输入的8个数字代表的字符,把每个数分别除以0.95和1.05得到8的区间,按左区间从小到大排序,那么和第一个区间有交集的必然代表二进制0,与它没交集的之后都是1,因为题目 ...
- bjfu1100 圆环
这题也是2011百度之星的一道题.知道做法后代码极简单. 不过我做完后随便上网搜了一下,发现竟然还有很多不同的做法.别的做法我就不管了,我只把我的做法的原理说清楚.我做题时是按如下顺序逐步找到规律的: ...
- HTML 表单提交 的简单代码
<form action="check.php" method="post"> 用户名:<input type="text" ...
- QC开发只能修改指派给自己的缺陷,而其他的bug可以查看但是不允许修改
今天在QC9.0项目中增加了几个项目,然后我的想法是:开发只能修改指派给自己的缺陷,而其他的bug可以查看但是不允许修改 虽说qc我还是比较熟悉的,但是对于这个问题,感觉可能要用到脚本,对于脚本我一窍 ...
- PHP 魔术方法总结
1.__get.__set 这两个方法是为在类和他们的父类中没有声明的属性而设计的 __get( $property ) 当调用一个未定义的属性时访问此方法 __set( $property, $va ...