Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5418955
  • 博文数量: 763
  • 博客积分: 12108
  • 博客等级: 上将
  • 技术积分: 15717
  • 用 户 组: 普通用户
  • 注册时间: 2007-09-28 21:21
个人简介

业精于勤,荒于嬉

文章分类

全部博文(763)

文章存档

2018年(6)

2017年(15)

2016年(2)

2015年(31)

2014年(14)

2013年(87)

2012年(75)

2011年(94)

2010年(190)

2009年(38)

2008年(183)

2007年(28)

分类: iOS平台

2015-08-31 16:44:10

写在前面:    

    本文将创建一个基本的Button。并且编写脚本,响应点击事件。

    欢迎大家纠错、拍砖!原创很辛苦,如有转载,请注明出处。

    

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

    在NGUI 3.5中,创建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 点击事件

    在Project面板中,新建一个Scripts 文件夹,然后右键-->【Create】-->【C# Script】,创建一个C# 脚本。取名为TestButton.cs:


[csharp] view plaincopy在CODE上查看代码片派生到我的代码片
  1. using UnityEngine;  
  2. using System.Collections;  
  3.   
  4. public class TestButton : MonoBehaviour {  
  5.   
  6.     // Use this for initialization  
  7.     void Start () {  
  8.       
  9.     }  
  10.   
  11.     void OnClick () {  
  12.         Debug.Log("OK! Get the click!");  
  13.     }  
  14. }  

保存脚本,然后把这个脚本拖拽到层级面板的 Control - Simple Button上,之后,运行:



好,点击按钮会,会发现打印信息!按钮点击事件成功响应!


ps. 按钮显灰(按钮disable)设置


[csharp] view plaincopy在CODE上查看代码片派生到我的代码片
  1. this.GetComponent<UIButton> ().isEnabled = false;  


执行后,会自动调用disable状态时的颜色(比如默认的浅灰色),并禁用按钮。

阅读(1057) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~