zoukankan      html  css  js  c++  java
  • 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)而且有相同的基本功能。FromTo来表示開始和结束的值。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)”类型。




  • 相关阅读:
    利用Js/Jquery实现div的隐藏与显示(注意释放与不释放空间)
    关于js 中 alert 事件弹框提示,title显示页面url网址问题
    前端获取Ajax请求获取数据,无法赋值给全局变量
    JS根据条件正则截取相应字符,以及常用截取函数
    Git切换分支命令
    CodeIgniter (CI)框架中的数据库查询汇总
    解决Failed to load resource: the server responded with a status of 413 (Request Entity Too Large)错误//解决 413 Request Entity Too Large
    Linux: cp 复制文件(文件夹)
    LeeCode(No4
    RSS简介
  • 原文地址:https://www.cnblogs.com/hrhguanli/p/4005212.html
Copyright © 2011-2022 走看看