unity3D游戏开发十八之NGUI动画

我们先来看下帧动画,顾名思义,就是一帧帧的图片组成的动画,我们须要用到UISprite Animation组件,它的属性例如以下:

Framerate:播放速率,也就是每秒钟播放的帧数

Name Prefix:图片名字的前缀,能够用来过滤图片集中的图片,从而指定你须要的图片

Loop:循环

依照前面文章创建UI的步骤,我们创建一个sprite,一个button,通过点击button来控制动画的播放和暂停。OK,首先我们创建一个Atlas,把我们的须要的素材放进去,例如以下图:

点击Create创建Atlas,然后设置sprite的sprite图片为第一帧图片,再新建一个button,project结构例如以下:

然后我们新建一个c#脚本,用来控制动画,代码例如以下:

using UnityEngine;
using System.Collections;

public class TestRun : MonoBehaviour {

	private bool isAnimation=false;

	GameObject sprite=null;

	// Use this for initialization
	void Start ()
	{

		GameObject play=GameObject.FindGameObjectWithTag("Player");

		UIEventListener.Get(play).onClick=playClick;

		sprite=GameObject.Find("RunnerSprite");

	}

	// Update is called once per frame
	void Update ()
	{

	}

	void playClick(GameObject button)
	{

		if(isAnimation)
		{

			isAnimation=false;
			//xiaohui
			Destroy(sprite.GetComponent<UISpriteAnimation>());

			UISprite us=sprite.GetComponent<UISprite>();
			//停止播放以后把精灵图片置为第一张
			us.spriteName=us.atlas.spriteList[0].name;

		}
		else
		{

			Debug.Log("----11111");
			isAnimation=true;

			UISpriteAnimation an=sprite.AddComponent<UISpriteAnimation>();
			//设置播放的速度
			an.framesPerSecond=20;

		}

	}

}

然后把脚本绑定到button上,执行,例如以下图:

以下我们来看下Tween库,顾名思义,事实上就是一些平移、旋转、缩放等得动画,我们来看下Tween有哪些动画,例如以下图:

我们给button加入?一个tween组件,属性例如以下图:

能够右键widget之后在Tween菜单选择合适的选项来给它添加?tween功能。或者通过NGUI菜单添加?。或者直接通过名字来挂tween脚本。

新增的tween默认是active的,所以你点击Play后tween会执行。假设不想执行,勾选掉脚本名字那里的复选框。

全部的tween都继承自相同的基类(UITweener)而且有相同的基本功能。From和To来表示開始和结束的值。Animation
Curve用来与微调这两个值的变化过程。

Duration指定一次动画的时长。Start
Delay进行延迟play。秒为单位。

Tween Group能够控制在同一个object上的多个tween触发哪个。播放时指定group ID。

你能够通过指定button上的OnClick部分调用tween的Play()函数。

挂一个UIPlayTween脚本(Attach
-> Play Tween Script)实现高级的功能。提供很多其它的play时选项,属性例如以下:

首先指定Tween Target。这个game object须要至少一个tween,这样才干够触发。Include
Child来激活这个object的全部子节点tween。

与上面的tween类似,Tween Group让你选择性的激活tween。

Trigger condition指定什么行为触发tween。Play direction决定play方式。假设target时disabled,你能够选择激活它或者保持原状(这样你有益设置为disabled的object所包括的tween就不会马上播放)。

假设tween正在play,能够选择restart让它马上从头play、继续播放,或者之后之前的play结束的话才play。能够设置tween后disable掉target——用来切换菜单的时候非常管用。

最后,假设想在tween结束的时候调用其它功能函数,拖拽一个game object到Notify属性里面,选择想要的函数。和全部的NGUI通知一样,函数须要声明为“public void FuncName (void)”类型。

时间: 2024-08-04 03:59:22

unity3D游戏开发十八之NGUI动画的相关文章

unity3D游戏开发十四之NGUI一

转:http://blog.csdn.net/kuloveyouwei/article/details/23676039 在Unity中,可以使用代码控制其自身所携带的GUI来实现图形界面的搭建.但是这些组件的搭建效率很低,而且已经无法满足现在市场对图形用户界面美感的要求,所以,引入了NGUI来增加所要开发的图形用户界面的美感.NGUI是一个功能强大的UI系统,其事件处理通常由开发人员编写C#脚本完成,并且是一个严格遵循KISS原则的Unity框架,该框架具有干净.简约的代码. 现在NGUI的各

[Unity3D]Unity3D游戏开发之继续探索NGUI

大家好,我是秦元培.欢迎大家关注我的博客.我的博客地址是blog.csdn.net/qinyuanpei. 博主近期開始研究NGUI了,但是说实话,博主感觉NGUI的东西似乎有些分散,由于网上大部分的资料都仅仅是简单地解说怎样使用NGUI,并没有从实质性的原理出发来解说NGUI的内涵,这就和我们学习.NET仅仅会拖控件是一样的.并不能把握事物内在的东西.所以,博主推荐大家从官方提供的样例入手研究NGUI.博主这几天基本上都在看NGUI的演示样例程序,自我感觉内容比較杂吧.在今天的文章中,博主将讲

Unity3D游戏开发之设置动画(Animations)属性

Unity3D游戏开发之设置动画(Animations)属性 通过创建角色动画Avatar,在新的动画系统Mecanim中,Unity就设置了角色动画的骨架和蒙皮信息,从而就可以在Unity中实现角色动画了. 切换到动画(Animations)选项卡.选中导入动画(Import Animation)的选项.如果该文件中有动画数据,可以看到动画剪辑的列表(Clips). Tips: Rig选项卡中动画类型(Animation Type)如果选则的是旧版(Legacy),Animations中的属性

Unity3D游戏开发之动画模型导入

Unity3D游戏开发之动画模型导入 导入动画文件后,在工程(Porject)面板中选中,通过Inspector面板修改参数设置. 在项目视图中选中模型文件.如果想用旧版3.x的动画系统导入和编辑动画,请选择legacy选项.如果你有一个人性角色,比如,一个脑袋两条胳膊的两足动物,请选择Humanoid和'Create from this model',这样,一个完美匹配你角色骨骼关系的替身就可以被创建,或者你也可以选择其他预设好的替身. 如果你的角色不是人形物体,比如一个四足动物或者任何其它的

unity3D游戏开发实战原创视频讲座系列10之《保卫战:异形入侵》游戏开发第一季

讲解目录 <保卫战:异形入侵>游戏开发    1 第一讲   游戏演示和资源的介绍    1 第二讲  "异形"怪物的实现    1 第三讲  "异形"怪物生命值的体现    9 第四讲  "异形"怪物死后处理    12 第五讲  玩家的制作    15 第六讲  玩家的行走控制(键盘)    16 第七讲  武器的切换(鼠标)     16 第八讲  摄像头的变化(鼠标)    19 第九讲  子弹预制体和特效的制作    20

零基础unity3d游戏开发系列目录

零基础Unity3D游戏开发系列 第一章:游戏开发与游戏引擎(一) 零基础Unity3D游戏开发系列 第一章:游戏开发与游戏引擎(二) 零基础Unity3D游戏开发系列 第二章:Unity3D概览(一)界面... 零基础Unity3D游戏开发系列 第二章:Unity3D概览(一)创建与打开项目I 零基础unity3d游戏开发系列 第二章:unity3d概览(一)创建与打开项目II 零基础Unity3D游戏开发系列 第二章:Unity3D概览(一)创建与打开项目III 零基础Unity3D游戏开发

Unity3D游戏开发从零单排(五) - 导入CS模型到Unity3D

游戏动画基础 Animation组件 Animation组件是对于老的动画系统来说的. 老的动画形同对应的动画就是clip,每个运动都是一段单独的动画,使用Play()或CrossFade(),直接播放动画 或淡入淡出播放动画. animation.Play("name"); animation.CrossFade("name"); 下面的是它的几个属性 Animation:默认的动画片段: Aniamtions:包含的动画片段: Play Automaticall

[Unity3D]Unity3D游戏开发之跑酷游戏项目解说

大家好,我是秦元培.我參加了CSDN2014博客之星的评选,欢迎大家为我投票,同一时候希望在新的一年里大家能继续支持我的博客. 大家晚上好.我是秦元培,欢迎大家关注我的博客,我的博客地址是blog.csdn.net/qinyuanpei.终于到了更新博客的时间.从昨天下午開始,博主開始设计一个跑酷的游戏,到晚上睡觉前这个游戏已经基本完毕. 博主今天早上七点钟就起来了,到早上十点钟终于把整个游戏写完了. 所以,今天的博客的主题就是<Unity3D游戏开发之跑酷游戏项目解说>. 从博主自身来考虑这

Unity3D游戏开发之跑酷游戏项目详解

更多精彩请到http://www.gopedu.com/ 今天的博客的主题就是<Unity3D游戏开发之跑酷游戏项目讲解>. 从我们自身来考虑这件事情,当你选择做自己热爱的事情的时候,你的内心一定是充满激情和勇气的,你愿意看到自己的努力,你愿意看到自己的付出,我们成长是为了促进自我对认知的不断完善,所以我们应该以一种虔诚.谦恭的态度来对待我们的生命,我们或许无法选择出身,但我们可以选择向自己喜欢的生活去努力.或许我和这些人真的不是一个世界的人吧,很多事情在今天都给出了结局,对于这种人我已经没有