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 ...
随机推荐
- 宏UT_LIST_ADD_FIRST
/*******************************************************************//** Adds the node as the first ...
- 数据库锁机制(一)——概述
注:内容为自己的推理认知+网络,如有错误和不合理之处,敬请指出. 在多线程环境中我用使用线程锁处理并发问题,而在数据库系统中,并发问题可以细化到事务级别,而DBMS对此的处理方案就是使用锁. 为了适应 ...
- LA 4123 (计数 递推) Glenbow Museum
题意: 这种所有边都是垂直或水平的多边形,可以用一个字符串来表示,一个270°的内角记作O,一个90°的内角记作R. 如果多边形内存在一个点,能看到该多边形所有的点,则这个多边形对应的序列是合法的.这 ...
- Ajax、Comet与Websocket
从 http 协议说起 1996年IETF HTTP工作组发布了HTTP协议的1.0版本 ,到现在普遍使用的版本1.1,HTTP协议经历了17 年的发展.这种分布式.无状态.基于TCP的请求/响应式 ...
- 通过AJAX与ASP.NET结合实现的仿GridView增删改查功能
jQurey代码部分: 1. <script type="text/javascript"> 2. var flag = 0; 3. 4. ...
- The resource could not be loaded because the App Transport
Xcode7 beta 网络请求报错:The resource could not be loaded because the App Transport Xcode7 beta 网络请求报错:The ...
- LeetCode Swap Nodes in Pairs 交换结点对(单链表)
题意:给一个单链表,将其每两个结点交换,只改尾指针,不改元素值. 思路:迭代法和递归法都容易写,就写个递归的了. 4ms /** * Definition for singly-linked list ...
- <二>面向对象分析之几个关键的概念
一:建模 --->建模,是指通过对[客观事物]建立一种抽象的方法用以表征事物并获得对事物本身的理解.同时把这种理解概念化,将这些逻辑概念组织起来,构成一种对所观察对象的内部结构和工 ...
- 【转】NSDictionary以及NSMutableDictionary的用法
原文网址:http://my.oschina.net/u/1245365/blog/177736 摘要 Foundation中的字典是由 键—值 对组成的数据集合.通过key(键),查找对应的valu ...
- iOS-利用AFNetworking(AFN 1.x)-实现文件上传
转:http://www.kaifazhe.com/ios_school/380067.html 官方建议AFN的使用方法 1. 定义一个全局的AFHttpClient:包含有 1> baseU ...