天天看点

unity3D游戏开发十六之NGUI三

接下来我们看下ProgeressBar,进度条,它是UISlider和UIScrollBar的基类,属性如下图:

unity3D游戏开发十六之NGUI三

Value:百分比

Alpha:透明度

Steps:步阀阈值

Appearance:特性

a.Foreground(前景图片)

b.Background(背景图片)

d.Direction(滑动方向)

On Value Change:当滑动时,进行事件分发

下面我们做一个进度条,每过一秒进度加1,准备两个sprite作为前景图片跟背景图片,如下图:

unity3D游戏开发十六之NGUI三

我们修改Test脚本,代码如下图:

using UnityEngine;
using System.Collections;

public class Test : MonoBehaviour {



	//public UIInput username; 

	public UIProgressBar progressBr;

	private UILabel plabel;

	void Awake ()
	{

//		Debug.Log("----111");
//		//获取需要监听的按钮对象
//		GameObject button=GameObject.Find("UI Root (2D)/Camera/Anchor/Panel/Button");
//		//设置这个按钮的监听,指向本类的ButtonClick方法中
//		UIEventListener.Get(button).onClick=buttonClick;


		progressBr=GetComponent<UIProgressBar>();
		progressBr.value=0;


		GameObject ob=GameObject.FindWithTag("111");


		plabel=ob.GetComponent<UILabel>();




	}


	// Use this for initialization
	void Start () 
	{
	


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

		if(progressBr!=null)
		{


			progressBr.value+=0.01f*Time.deltaTime;


			string shuzhi=(progressBr.value * 100).ToString("#0.00");
			plabel.text=shuzhi+"%";


		}


	
	}



//	void buttonClick(GameObject button)
//	{
//
//
//		Debug.Log("username:"+username.value);
//
//	//	Debug.Log("GameObject:"+button.name);
//
//
//	}


}
           

绑定脚本,设置对象,如下图:

unity3D游戏开发十六之NGUI三

预览游戏,如下图:

unity3D游戏开发十六之NGUI三

下面我们看下UISlider,UISlider组件可以用来创建一个简单的slider和进度条。继承了UIProgressBar的所有功能,之后增加了可选的滑块,属性如下图:

unity3D游戏开发十六之NGUI三

效果如下:

unity3D游戏开发十六之NGUI三

接下来我们看下UIScrollBar,UIScrollBar用来创建滚动条——可变长度的滑动条在大小固定的区域移动。它继承了所有UIprogressBar的功能,仅仅修改了前景的显示方式,变为可以被移动位置并且可以交互,属性如下图:

unity3D游戏开发十六之NGUI三

与UISlider类似,UIScrollBar需要引用一个Foreground widget。当Size值为1(100%)的时候,这个widget就会占用滚动条的最大尺寸,效果如下图:

unity3D游戏开发十六之NGUI三

继续阅读