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. flask-include标签使用标签

      [footer.html] <footer> 这是底部 </footer> [header.html] <style> .nav ul{ overflow: h ...

  2. full GC触发的条件

    full GC触发的条件除直接调用System.gc外,触发Full GC执行的情况有如下四种.1. 旧生代空间不足旧生代空间只有在新生代对象转入及创建为大对象.大数组时才会出现不足的现象,当执行Fu ...

  3. zabbix-agentd 安装

    [root@node2 ~]# rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.ce ...

  4. php中__call() 和 __callStatic方法的使用

    __call 与__callStatic 魔法方法是php5.3后新增的,二者的应用场景: 1.当要调用的方法不存在或权限不足时,会自动调用__call 方法. 2.当调用的静态方法不存在或权限不足时 ...

  5. 偷懒啦!button多了,这样写既简洁又高效

    在日常的项目中,我最喜欢用button了,但是button多了,写起来又枯燥又费时,今天学到一方法,绝对简单高效! 看看以前: 看吧,这还只是声明,接下来还有: 等等……,是不是很麻烦?现在找到新方法 ...

  6. Android学习笔记(11):线性布局LinearLayout

    线性布局LinearLayout是指在横向或是竖向一个接一个地排列.当排列的组件超出屏幕后,超出的组件将不会再显示出来. LinearLayout支持的XML属性和相应方法如表所看到的: Attrib ...

  7. hyper-v的p2v工具

    1.Disk2vhd v1.64 可以在线p2v http://technet.microsoft.com/en-us/sysinternals/ee656415.aspx 2.物理机转换到HYPER ...

  8. 使用SpringBoot配置了 server.servlet.path后无效的解决方案

    一.问题描述 使用SpringBoot配置了 server.servlet.path后无效,访问时无法通过:http://127.0.0.1:8080/app/hello.html 访问. 二.解决方 ...

  9. Spark机器学习(11):协同过滤算法

    协同过滤(Collaborative Filtering,CF)算法是一种常用的推荐算法,它的思想就是找出相似的用户或产品,向用户推荐相似的物品,或者把物品推荐给相似的用户.怎样评价用户对商品的偏好? ...

  10. top命令详析及排查问题使用演示

    1. top基本使用 top命令运行图 第一行:基本信息 第二行:任务信息 第三行:CPU使用情况 第四行:物理内存使用情况 buff/cache: buffers 和 cache 都是内存中存放的数 ...