Unity 3D游戏开发GUI高级控制之Button控件

Button控件又称为按钮控件,该控件是十分常见的控件之一,可以用来判断用户在程序中的一些操作行为,比如对话框中的“确定”和“取消”按钮等。

按钮共有三个基本状态组成:未点击状态、击中状态、点击后状态。一般情况下,游戏界面的按钮只监听“未点击状态”与“点击后状态”两种。

按钮展现方式分为两种:“普通按钮”和“图片按钮”。普通按钮为系统默认显示的按钮,而图片按钮可以设定按钮的背景图案。

 

下边代码示例,设置了三个按钮,第一个为图片按钮,第二个为文字按钮,第三个为连续按钮。此外还设置了按钮的文字颜色和背景颜色,并且监听按钮点击的事件并且在游戏屏幕中以文本框的形式显示用户点击的是图片按钮还是文字按钮。代码中还添加了一个时间计数器,当用户点击连续按钮后,计数器会记录按下按钮的时间,界面如下所示

:
Unity 3D游戏开发GUI高级控制之Button控件_第1张图片
 

 

详细代码如下

:

  #pragma strict
  
  //定义按钮贴图对象
  var bTexture:Texture2D;
  //定义提示信息变量
  private var str:String;
  //定义时间计数器变量
  private var fTime:int;
  
  function Start () {
  	//初始化赋值
  	str = "请点击按钮!";
  }
  
  function OnGUI () {
  	//显示提示信息内容
  	GUI.Label(Rect(10,10,Screen.width,30),str);
  	
  	if(GUI.Button(Rect(10,50,bTexture.width,bTexture.height),bTexture)){
  		//点击按钮修改提示信息
  		str = "你点击了图片按钮!";
  	}
  	
  	//设置按钮中文字的颜色
  	GUI.color = Color.green;
  	//设置按钮的背景色
  	GUI.backgroundColor = Color.red;
  	
  	if(GUI.Button(Rect(10,130,70,30),"文字按钮")){
  		//点击按钮修改提示信息
  		str = "你点击了文字按钮!";
  	}
  	
  	//设置按钮中文字的颜色
  	GUI.color = Color.yellow;
  	//设置按钮的背景色
  	GUI.backgroundColor = Color.white;
  	
  	if(GUI.RepeatButton(Rect(10,170,100,30),"按钮按下中")){
  		//点击按钮修改提示信息
  		str = "按钮按下中的时间"+fTime;
  		//时间计数器
  		fTime++;
  	}
  }

 

 

上述代码中,使用了GUI.Button()方法添加按钮,当该方法返回true时,表示按钮被按下了。使用GUI.RepeatButton()方法可添加一个连续按钮,用于监听该按钮按下中的状态,当该方法返回true时,表示按钮处于按下中。另外,使用GUI.color可以设置文字的颜色,使用GUI.backgroundColor可设置按钮的背景色。

点击运行,结果如下图所示:
Unity 3D游戏开发GUI高级控制之Button控件_第2张图片

 

 

 

你可能感兴趣的:(Unity3D)