说一说关于ngui按钮问题方面的一些总结,主要来说一下按钮的创建、点击事件的处理,和按钮颜色显示的一些做法和思路,下面就开始来说一下步骤:
Button -- 按钮
在NGUI 3.5 里,Button这个控件,经过了整理。比如更改了创建方式(搜索、拖拽);比如合并了 2.x里的Button和Image Button。个人觉得这样是合理的,wxPython的Button,就不分基本按钮,还是图片按钮,只是创建时候的参数不同而已(重载)。
1,创建 Widget
如果已经创建过Widget(或者存在UI Root 和Camera),请忽略此步骤。直接跳到步骤2。否则执行以下步骤:
确保你的项目里已经导入了NGUI(如有不明,请看我写的《NGUI 3.5教程(一)》)。或者新建一个空白项目,然后导入NGUI。
为了显示label,我们需要新建一个Widget。也就是所谓的小工具。在菜单上点击【NGUI】-->【Create】-->【Widget】。
之后,Hierarchy面板上,会自动建立出 UI Root,包括(Camera 、Container)。
2,创建 Button
(1)在Project面板中,搜索“Control”,也就是搜索控件。之后,会发现NGUI的一堆控件。
(2)找到 Simple Button,拖拽到层级面板下面。我这里把它拖拽到Container下面了。
在检视面板中,可以看到,Simple Button默认有4个组件:
Transform 作为Unity最基本的组件,这里不再做解释。
UIScript (Script) 是NGUI默认挂载在Button上的脚本,主要是指定图集(Atlas)、深度等操作。UIButton(Script) 是NGUI默认挂载在Button上的脚本,主要是指定按钮状态的,比如普通(Normal)、悬停(也称徘徊、经过,Hover)、按下(Pressed)、禁用(Disabled)。
Box Collider 是默认挂在按钮上的一个盒碰撞器。其作用是使Button控件具有碰撞属性。NGUI中事件的触发都需要对象具有碰撞属性。
(3)通过Label的Text属性,可以给简单的按钮改文字。这里我给改成 Button-1。
3,编写脚本,处理 Button 点击事件
- using UnityEngine;
- using System.Collections;
- public class TestButton : MonoBehaviour {
- // Use this for initialization
- void Start () {
- }
- void OnClick () {
- Debug.Log("OK! Get the click!");
- }
- }
好,点击按钮会,会发现打印信息!按钮点击事件成功响应!
ps. 按钮显灰(按钮disable)设置:
- this.GetComponent<UIButton> ().isEnabled = false;
执行后,会自动调用disable状态时的颜色(比如默认的浅灰色),并禁用按钮。