Checkbox复选框

1.创建一个NGUI背景Sprite1节点

2.打开NGUI---->Open---->Prefab Toolbar---->选择一个复选框节点,拖拽到背景节点Sprite1下,删除每个复选框节点下的NGUI Snapshot Point 20子节点,调整位置

3.可以更改每个复选框节点下的Label子节点里面的文字

4.这时候两个复选框可以同时被选中,如果想要做只能选中其中一个,就要设置复选框节点下的UI Toggle组件下的Group值,两个节点的Group值设置为一样就是同一组,就只能一个被选中

Slider滑动条

1.创建一个NGUI背景Sprite1节点

2.打开NGUI---->Open---->Prefab Toolbar---->选择一个Slider滑动条节点,拖拽到背景节点Sprite1下,调整位置

3.UI Slider组件

 Value:进度条的值

 Foreground:前景图片

 Background:背景图片

 :值改变的时候会用这个函数改变Label的值

4.如果改变一下颜色和Label的位置,就可以做一个血条的效果,只要用代码来改变Slider组件的Value值就可以了

Button添加事件的6种方法

1.创建一个Sprite类型的Spritebutton节点在背景Sprite1下作为按钮子节点,可以给Spritebutton一个贴图和文字

2.给Spritebutton节点添加按钮组件,NGUI---->Attach---->Collider和Button Script组件

3.创建一个脚本mybuttonCallBack,打开mybuttonCallBack.cs

方法1:直接监听事件 ----- 不推荐使用

把下面代码直接写在mybuttonCallBack里,然后拖mybuttonCallBack脚本到有UI Button组件的节点上,就绑定在按钮节点上了,当按钮点击时就可以监听到,这种方法不太好很不灵活。

void OnClick()
{
Debug.Log("Button is Click!!!");
}

方法2:onClick 列表 ------ 推荐使用

把下面代码直接写在mybuttonCallBack里,然后拖mybuttonCallBack脚本到有UI Button组件的节点上,就绑定在按钮节点上了,当按钮点击时就可以监听到,

void Start ()
{
  //获得UIButton组件里面的onClick事件代理列表,public List<EventDelegate> onClick = new List<EventDelegate>(),给这个列表里面添加一个新的事件
  this.GetComponent<UIButton>().onClick.Add(new EventDelegate(this.OnClickButton2));
} void OnClickButton2 ()
{
  Debug.Log("OnClickButton2");
}

另一种写法,这种可以写在任意类中或者脚本中

void Start()
{
GameObject jump_button = GameObject.Find("game_root/cameras/UI Root/jump");
jump_button.GetComponent<UIButton>().onClick.Add(new EventDelegate(this.Jump));
}
public void Jump()
{
}

方法3:使用SendMessage:早期的方法,不推荐使用,用多了之后消息满天飞,性能低,对于后期维护和代码调试非常不好, 尤其是几万行代码之后,现在游戏一般都是5万行或者一二十万行的代码------- 不推荐使用

选择按钮Spritebutton后,在Unity导航菜单栏中选择Component->Interaction->Button Message 组件。
Target:接收按钮消息的游戏对象。是按钮节点Spritebutton。
Function Name:接收按钮消息的方法,拥有这个方法的脚本mybuttonCallBack必须绑定在上面Target对象Spritebutton身上。
Trigger:触发事件的方式,OnClick显然是一次点击,还有OnMouseovor鼠标经过等等。
Include Children :是否让该对象的所有子对象也发送这个点击事件。

方法4:UIEventListener --------推荐使用
选择按钮后在Unity导航菜单栏中选择Component->NGUI->Internal ->Event Listener 。 如果不添加也可以,运行的时候会帮我们自动添加一个,所以手动添加会更快,避免了添加组件的代码的执行。
挂在按钮上就可以,它没有任何参数。
在任何一个脚本或者类中即可得到按钮的点击事件、把如下代码放在任意类中或者脚本中。

//或者写在void Start ()
void Awake ()
{
  //获取需要监听的按钮对象
  GameObject button = GameObject.Find("UI Root/Camera/Anchor/Panel/LoadUI/MainCommon/Button");
  //设置这个按钮的监听,指向本类的ButtonClick方法中。如果这个脚本是挂在按钮上的,就不用上一句,button用this.gameobject代替
  UIEventListener.Get(button).onClick = ButtonClick4;
} //计算按钮的点击事件
void ButtonClick4(GameObject button)
{
  Debug.Log("ButtonClick4");
}

方法5:EventDelegate --------推荐使用

和第2种方法类似,把下面代码直接写在mybuttonCallBack里,然后拖mybuttonCallBack脚本到有UI Button组件的节点上,就绑定在按钮节点上了,当按钮点击时就可以监听到,

void Start ()
{
  // 给Button按钮添加监听事件
  EventDelegate.Add (GetComponent<UIButton> ().onClick, AddOnClick5);
} public void AddOnClick5 ()
{
  Debug.Log ("AddOnClick5");
} // 取消NGUI按钮的监听事件
public void CancelOnClick ()
{
  EventDelegate.Remove (GetComponent<UIButton> ().onClick, AddOnClick5);
}

方法6:UIEventTrigger --------推荐使用

选择按钮节点,添加一个UI EventTrigger组件,里面可以设置各种各样的触发事件的方式以及可以设置绑定事件的节点和设置要触发的节点里面所挂载脚本的public方法。

关于Unity中NGUI的Checkbox复选框、Slider滑动条和Button的6种触发回调事件的方式的更多相关文章

  1. Web版需求征集系统所得1,servlet中获取checkbox复选框的值

    servlet中获取checkbox复选框的值 </tr> <tr> <td align="right">研究类型</td> < ...

  2. 表格中的checkbox复选框 全选非全选 公共方法 及提交选中结果

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  3. ZH奶酪:纯CSS自定义Html中Checkbox复选框样式

    原文链接:http://www.lrxin.com/archives-683.html 首先看下效果: 点击演示地址查看实例. 首先,需要添加一段CSS隐藏所有的Checkbox复选框,之后我们会改变 ...

  4. 转 纯CSS设置Checkbox复选框控件的样式

    Checkbox复选框是一个可能每一个网站都在使用的HTML元素,但大多数人并不给它们设置样式,所以在绝大多数网站它们看起来是一样的.为什么不把你的网站中的Checkbox设置一个与众不同的样式,甚至 ...

  5. 【转】纯CSS设置Checkbox复选框控件的样式

    Checkbox复选框是一个可能每一个网站都在使用的HTML元素,但大多数人并不给它们设置样式,所以在绝大多数网站它们看起来是一样的.为什么不把你的网站中的Checkbox设置一个与众不同的样式,甚至 ...

  6. checkbox复选框样式

    随着现代浏览器的流行,纯CSS设置checkbox也变的很是实用,下面会讲到5种与众不同的checkbox复选框. 首先,需要添加一段CSS隐藏所有的Checkbox复选框,下面我们会改变它的外观.要 ...

  7. js做全选,用一个checkbox复选框做多个checkbox复选框的全选按钮,有一个复选框未被选择时,全选按钮的checked就为false

    用一个checkbox复选框做多个checkbox复选框的全选按钮,有一个复选框未被选择时,全选按钮的checked就为false,当所有checkbox都被选中时,全选按钮也被选中. 详解: 有两种 ...

  8. 如何让checkbox复选框只能单选

    function框架div 如何让checkbox复选框只能单选 在项目开发中遇到一个这样的问题,要让一列复选框架在任何时间段内只能选择一个. 有人说怎么不用单选框了,因为单选框一旦选择了就不能取消选 ...

  9. 纯CSS设置Checkbox复选框控件的样式

    Checkbox复选框是一个可能每一个网站都在使用的HTML元素,但大多数人并不给它们设置样式,所以在绝大多数网站它们看起来是一样的.为什么不把你的网站中的Checkbox设置一个与众不同的样式,甚至 ...

随机推荐

  1. css 背景透明色, 文字不透明。

    [原]CSS实现背景透明,文字不透明,兼容所有浏览器 background-color: rgba(0,0,0,0.5); filter:Alpha(opacity=50);

  2. JFreeChart 之柱状图

    JFreeChart 之柱状图 一.JFreeChart 简介 JFreeChart是JAVA平台上的一个开放的图表绘制类库.它完全使用JAVA语言编写,是为applications, applets ...

  3. BZOJ.3329.Xorequ(数位DP)

    题目链接 x^3x=2x -> x^2x=3x 因为a^b+((a&b)<<1)=a+b,x^2x=x+2x,所以x和2x的二进制表示中不存在相邻的1. (或者,因为x+2x ...

  4. BZOJ4313 : 三维积木

    不妨设$R$是唯一可以看到的颜色,考虑一维序列的情况. 设$f[i][j][k][x][y]$表示考虑了前$i$个位置,第$i$个位置的高度是$j$,最高高度是$k$,已经用了$x$个$R$,$y$个 ...

  5. Oracle varchar与varchar2的区别

    varchar -- 存放定長的字符数据,最长2000個字符:varchar2 -- 存放可变长字符数据,最大长度为4000字符. varchar2是oracle提供的独特的数据类型oracle保证在 ...

  6. JavaScript数组所有API全解密

    全文共13k+字,系统讲解了JavaScript数组的各种特性和API. 数组是一种非常重要的数据类型,它语法简单.灵活.高效. 在多数编程语言中,数组都充当着至关重要的角色,以至于很难想象没有数组的 ...

  7. Kubernetes基础:编排调度的那些Controllers

    0. 概述 Kubernetes提供了很多Controller资源来管理.调度Pod,包括Replication Controller.ReplicaSet.Deployments.StatefulS ...

  8. 折叠代码块 C#中用 #region和#endregion java中用 //region和//endregion

    折叠代码块 C#中用 #region和#endregion   java中用 //region和//endregion

  9. 1.1 lambda表达式

    一.处理匿名内部类 1.Runnable接口 new Thread(new Runnable() { public void run() { System.out.println("hell ...

  10. boost.xml_parser中文字符问题 (转)

    当使用xml_parser进行读xml时,如果遇到中文字符会出现解析错误. 网上有解决方案说使用wptree来实现,但当使用wptree来写xml时也会出错.而使用ptree来写中文时不会出错. 综合 ...