关于Unity中NGUI的Checkbox复选框、Slider滑动条和Button的6种触发回调事件的方式
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种触发回调事件的方式的更多相关文章
- Web版需求征集系统所得1,servlet中获取checkbox复选框的值
servlet中获取checkbox复选框的值 </tr> <tr> <td align="right">研究类型</td> < ...
- 表格中的checkbox复选框 全选非全选 公共方法 及提交选中结果
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- ZH奶酪:纯CSS自定义Html中Checkbox复选框样式
原文链接:http://www.lrxin.com/archives-683.html 首先看下效果: 点击演示地址查看实例. 首先,需要添加一段CSS隐藏所有的Checkbox复选框,之后我们会改变 ...
- 转 纯CSS设置Checkbox复选框控件的样式
Checkbox复选框是一个可能每一个网站都在使用的HTML元素,但大多数人并不给它们设置样式,所以在绝大多数网站它们看起来是一样的.为什么不把你的网站中的Checkbox设置一个与众不同的样式,甚至 ...
- 【转】纯CSS设置Checkbox复选框控件的样式
Checkbox复选框是一个可能每一个网站都在使用的HTML元素,但大多数人并不给它们设置样式,所以在绝大多数网站它们看起来是一样的.为什么不把你的网站中的Checkbox设置一个与众不同的样式,甚至 ...
- checkbox复选框样式
随着现代浏览器的流行,纯CSS设置checkbox也变的很是实用,下面会讲到5种与众不同的checkbox复选框. 首先,需要添加一段CSS隐藏所有的Checkbox复选框,下面我们会改变它的外观.要 ...
- js做全选,用一个checkbox复选框做多个checkbox复选框的全选按钮,有一个复选框未被选择时,全选按钮的checked就为false
用一个checkbox复选框做多个checkbox复选框的全选按钮,有一个复选框未被选择时,全选按钮的checked就为false,当所有checkbox都被选中时,全选按钮也被选中. 详解: 有两种 ...
- 如何让checkbox复选框只能单选
function框架div 如何让checkbox复选框只能单选 在项目开发中遇到一个这样的问题,要让一列复选框架在任何时间段内只能选择一个. 有人说怎么不用单选框了,因为单选框一旦选择了就不能取消选 ...
- 纯CSS设置Checkbox复选框控件的样式
Checkbox复选框是一个可能每一个网站都在使用的HTML元素,但大多数人并不给它们设置样式,所以在绝大多数网站它们看起来是一样的.为什么不把你的网站中的Checkbox设置一个与众不同的样式,甚至 ...
随机推荐
- 每日踩坑 2018-01-09 WebAPI会如何面对 枚举 参数?
这一块确实有些疑问, 众所周知 枚举参数我们传送枚举值所对应的数字就行了, 以前 Leader 跟我讲过,枚举参数会将字符串值也能够成功转化,而且枚举值定义之外的数字也可以被转为枚举值. 主要的问题在 ...
- redis清除缓存和连接远程服务器
直接进入命令行输入 1.连接远程redis: redis-cli -h 127.0.0.1 -p 3008 -a pIctur3 (a后是密码) 2.查看缓存:keys * 3.清除缓存:de ...
- java显示树结构
/** * 显示多颗树的所有节点的信息 * * @param departmentList */ private void showTreeList(Collection<Department& ...
- bootStrap中的ul导航
<!doctype html><html > <head> <meta charset="utf-8"> <link rel= ...
- web前端不可错过的开发工具–Adobe Brackets
Adobe Brackets是一个开源的基于HTML/CSS/JavaScript开发,运行在native shell上的集成开发环境.该项目由Adobe创建和维护,根据MIT许可证发布.提供Wind ...
- 20172302 《Java软件结构与数据结构》第四周学习总结
2018年学习总结博客总目录:第一周 第二周 第三周 第四周 教材学习内容总结 第六章 列表 1.列表是对象的有序集合,在 List 界面中定义. List 接口表示集合框架中的列表.列表可以具有重复 ...
- [TenserFlow学习笔记]——安装
最近人工智能.深度学习.机器学习等词汇很是热闹,所以想进一步学习一下.不一定吃这口饭,但多了解一下没有坏处.接下来将学习到的一些知识点做一下记录. 1.安装环境 在VMWare虚拟机中安装最新版本的U ...
- CNC系统的多任务并行处理
(1) CNC系统的多任务性.CNC系统通常作为一个独立的过程控制单元用于工业自动化生产中,因此它的系统软件必须完成管理和控制两大任务.系统的管理部分包括输入.I/O处理.显示和诊断.系统的控制部分包 ...
- java中四舍五入——double转BigDecimal的精度损失问题
代码: double d = -123456789012345.3426;//5898895455898954895989; NumberFormat nf = new DecimalFormat(& ...
- 这可能是最好的RxJava 2.x 入门教程(一)
这可能是最好的 RxJava 2.x 入门教程系列专栏 文章链接: 这可能是最好的 RxJava 2.x 入门教程(完结版)[重磅推出] 这可能是最好的RxJava 2.x 入门教程(一) 这可能是最 ...