NGUI系列教程六(序列帧动画)
2014-02-24 14:36
441 查看
============努力学习的分割线============
今天我给大家讲一下如何使用NGUI做序列帧动画。本节主要包括两方面内容,分别是使用UIspirit和使用UITexture 做序列帧动画。废话不说了,下面开始。
还要在啰嗦一句,首先大家要准备一些序列帧的素材图片,最好是大图和小图各一套。我们先来将使用UISpirit做序列帧动画,这个方法只适合使用小图。
在使用UISpirit 之前大家还要把准备好的序列帧图片做成Atlas,如何做Atlas,大家可以参考系列教程四,这里就不多说了。建好自己的Atlas之后就可以开始着手做了。废话终于完了。
1. 老规矩,新建一个场景,新建一个2D UI
,在Panel节点下新建一个UISpirit,图片选择序列帧的第一帧图片。
2.如何让Spirit动态换图片,是我们要解决的重要问题。只要UIspirit能够根据时间动态的换图片就可以做到播放序列帧动画。其实很简单,最重要的就是UISpirit的Name属性。我们只要能够动态改变UISpirit的SpiritName,就可以实现动态换图的功能。
代码如下
[C#] 纯文本查看 复制代码
?
这里重要的代码其实就只有一句 this.GetComponent<UISprite>().spriteName= ActivatorTexture; 根据i的索引,动态的改变Spirit的名称。
其余的是控制播放序列帧的节奏和是否播放序列帧。如图是我使用此方法做的等待的进度条效果。
![](http://www.unitymanual.com/data/attachment/forum/201308/02/112233zvbj6brxj7puk5nz.jpg)
3.第二种方法,使用UITexture做序列帧动画。新建一个UITexture,拖放需要做动画的序列帧的第一帧到Texture槽中,关于它的参数,在以前的系列教程中都已经解释的很清楚了,大家可以参考以前的教程。使用UITexture做序列帧动画的关键在于动态改变它的Texture。关键代码:UITexture.mainTexture
。
这里说明一点就是使用该方法做序列帧动画之前,需要把所有的序列帧图片放到Resources目录下。我们在运行的时候动态调用需要的Texture。还有一点需要注意的是,当图片很多的时候,我们还需要动态卸载已经加载的图片资源,避免挤爆内存。使用的方法是 : Resources.UnloadUnusedAssets();
4.有了上面的知识之后,我们就可以动手写出下面的代码了:
[C#] 纯文本查看 复制代码
?
由于完整代码比较长,这里就不贴出来了,作为附件下载帖在下面,但是需要大家付钱才能下载,这样做只是为了不让大家简单看看就行了,需要大家跟着自己动手做,自己学,授之以鱼不如授之以渔。大家可以试着自己结合上面的UISpirit的方法先自己写一下看看。这样可以让大家根据学习内容多思考,自己写出的东西才能记得牢固。不要只简单的从网上下载现成的代码用,这样对学习没好处。
今天我给大家讲一下如何使用NGUI做序列帧动画。本节主要包括两方面内容,分别是使用UIspirit和使用UITexture 做序列帧动画。废话不说了,下面开始。
还要在啰嗦一句,首先大家要准备一些序列帧的素材图片,最好是大图和小图各一套。我们先来将使用UISpirit做序列帧动画,这个方法只适合使用小图。
在使用UISpirit 之前大家还要把准备好的序列帧图片做成Atlas,如何做Atlas,大家可以参考系列教程四,这里就不多说了。建好自己的Atlas之后就可以开始着手做了。废话终于完了。
1. 老规矩,新建一个场景,新建一个2D UI
,在Panel节点下新建一个UISpirit,图片选择序列帧的第一帧图片。
2.如何让Spirit动态换图片,是我们要解决的重要问题。只要UIspirit能够根据时间动态的换图片就可以做到播放序列帧动画。其实很简单,最重要的就是UISpirit的Name属性。我们只要能够动态改变UISpirit的SpiritName,就可以实现动态换图的功能。
代码如下
[C#] 纯文本查看 复制代码
?
其余的是控制播放序列帧的节奏和是否播放序列帧。如图是我使用此方法做的等待的进度条效果。
![](http://www.unitymanual.com/data/attachment/forum/201308/02/112233zvbj6brxj7puk5nz.jpg)
3.第二种方法,使用UITexture做序列帧动画。新建一个UITexture,拖放需要做动画的序列帧的第一帧到Texture槽中,关于它的参数,在以前的系列教程中都已经解释的很清楚了,大家可以参考以前的教程。使用UITexture做序列帧动画的关键在于动态改变它的Texture。关键代码:UITexture.mainTexture
。
这里说明一点就是使用该方法做序列帧动画之前,需要把所有的序列帧图片放到Resources目录下。我们在运行的时候动态调用需要的Texture。还有一点需要注意的是,当图片很多的时候,我们还需要动态卸载已经加载的图片资源,避免挤爆内存。使用的方法是 : Resources.UnloadUnusedAssets();
4.有了上面的知识之后,我们就可以动手写出下面的代码了:
[C#] 纯文本查看 复制代码
?
相关文章推荐
- (转)NGUI系列教程七(序列帧动画UITexture 和 UIsprit)
- NGUI系列教程六(序列帧动画)
- NGUI系列教程六(序列帧动画)
- NGUI系列教程六(序列帧动画)
- NGUI系列教程七(序列帧动画)
- NGUI系列教程六(序列帧动画)
- NGUI_2.6.3_系列教程六(序列帧动画)
- 枫叶天空Cocos2d-x3.0系列教程二 序列帧动画
- C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(四十七)远距离单体攻击与单体魔法
- C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(三十九)向Silverlight移植①
- C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(三十七)地图自适应区域加载
- C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(四十)向Silverlight移植②
- C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(四)实现2D人物动画①
- C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(十)斜度α地图的构造及算法
- C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(四十一)制作精美的Mini地图①
- C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(二)让物体动起来②
- NGUI3.5系列教程之 一些小功能的实现
- C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(四十二)制作精美的Mini地图②
- C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(四)实现2D人物动画①
- Unity3D NGUI系列教程二