Button控件和RepeatButton控件


       Button控件(按钮控件)用来进行用户的行为判断,例如:确认,取消,退出等。按钮有3中状态:未点击,点击,点击后,在一般情况下,我们只用到未点击和点击这2种情况。


unity中如何为button如何实现长按 unity button按钮_控件


Parameters(参数):



position : Rect ——按钮在屏幕上的矩形位置,(起点x坐标,起点y坐标,按钮宽度,按钮高度)



text : String ——按钮上显示的文本内容



image : Texture ——按钮上显示的图片纹理



content : GUIContent ——按钮的文本,图片和提示。



style : GUIStyle ——按钮使用的样式,如果不使用,则按钮的样式使用的就是当前的GUISkin皮肤



Returns(返回):



布尔值——当该按钮被点击时返回true



Description(描述):



创建一个单次按下按钮,当用户点击按钮时立即触发事件。






RepeatButton(连续按钮)用于持续按下时触发事件的按钮,普通的Button按钮适用与单次按下。



unity中如何为button如何实现长按 unity button按钮_unity3d_02


案例:创建3个按钮,分别为普通文本按钮,普通图片按钮,连续按钮。再创建3个标签,第一个标签用于显示用户按下的按钮,第二个标签是用来显示普通图片按钮按下后绘制的图片,第三个标签用来记录连续按钮按下的时间。


using UnityEngine;
using System.Collections;

public class Button : MonoBehaviour {
	public Texture img;//公有变量图片/
	private Texture img0;
	private string info;//显示的信息/
	private int frameTime;//记录按下的时间/
	
	void Start()
	{
		//初始化/
		info = "请您点击按钮";
		frameTime = 0;
	}
	
	void OnGUI()
	{
		//标签/
		GUI.Label(new Rect(50,10,200,20),info);		
		//普通按钮,点击后显示Hello World
		if(GUI.Button(new Rect(50,250,200,20),"Hello World"))
		{
			info = "Hello World";
		}
		//标签/
		GUI.Label(new Rect(280,10,200,200),img0);
		//图片按钮,点击后显示图片/
		if(GUI.Button(new Rect(280,250,200,200),img))
		{
			img0 = img;
			info = "您点击了图片按钮";
		}
		//标签/
		GUI.Label(new Rect(500,10,200,20),"持续按下的时间:" + frameTime);
		//连续按钮,点击后显示按下的时间/
		if(GUI.RepeatButton(new Rect(500,250,200,20),"持续按下"))
		{
			frameTime ++ ;
			info = "您按下了连续按钮";
		}		
		//每当鼠标按下时将frameTime重置,一遍进行下次记录/
		if(Input.GetMouseButtonDown(0))
		{
			frameTime = 0;
		}
	}
}


在这里依旧需要将脚本绑定Main Camera上,并且将需要赋值的公有变量进行赋值,如果不会可以查看上一篇博文,《Unity3D入门——GUI的Label控件》。运行后显示游戏视图为:

unity中如何为button如何实现长按 unity button按钮_button_03



unity中如何为button如何实现长按 unity button按钮_gui_04




unity中如何为button如何实现长按 unity button按钮_赋值_05


unity中如何为button如何实现长按 unity button按钮_gui_06


尽管是转载,但我都实现了以上功能,本人是Unity3D小白,一点点学习。

参考博文:




unity中如何为button如何实现长按 unity button按钮_控件



unity中如何为button如何实现长按 unity button按钮_unity3d_02