1,button的建立;2,button组件的基本属性;3,button的事件监听c#
原位地址:http://blog.csdn.net/dingkun520wy/article/details/50434520编辑器
1,button的建立ide
编辑器建立spa
代码建立.net
/// <summary> /// 动态加载一个NGUI按钮 /// </summary> /// <param name="panleMe">父节点对象</param> /// <param name="atlas">用到的图集</param> /// <param name="sriteName">图片的名字</param> private void CreateServerButton(GameObject panleMe, UIAtlas atlas, string sriteName) { //得到深度(要建立button的Panle的深度) int depth = NGUITools.CalculateNextDepth(panleMe); //建立button物体,命名、设tag、摆所在panle的相对位置。 GameObject go = NGUITools.AddChild(panleMe); //添加button的背景图片UISprite UISprite bg = NGUITools.AddWidget<UISprite>(go); bg.type = UISprite.Type.Sliced; bg.depth = depth; //背景图片使用的图集 bg.atlas = atlas; //图集中使用的精灵名字 bg.spriteName = sriteName; //跳转位置(必要) bg.MakePixelPerfect(); //添加碰撞(有碰撞才能接收鼠标/触摸),大小与Button背景一致 BoxCollider box = NGUITools.AddWidgetCollider(go); box.center = new Vector3(0, 0, -1); box.size = new Vector3(bg.localSize.x, bg.localSize.y, 0); //添加UIButton触发事件的必要组件,并关联以前生成的UISprite UIButton bt = go.AddComponent<UIButton>(); bt.tweenTarget = bg.gameObject; }
2,button组件的基本属性code
按钮用到的UISprite对象
按钮的响应范围blog
UIButton的属性游戏
3,button的事件监听事件
直接监听事件
把下面脚本直接绑定在按钮上,当按钮点击时就能够监听到,这种方法不太好很不灵活。
void OnClick() { Debug.Log("Button is Click!!!"); }
使用SendMessage
选择按钮后,在Unity导航菜单栏中选择Component->Interaction->Button Message 组件。
Target:接收按钮消息的游戏对象。
Function Name:接收按钮消息的方法,拥有这个方法的脚本必须绑定在上面Target对象身上。
Trigger:触发的事件,OnClick显然是一次点击。
Include Children :是否让该对象的全部子对象也发送这个点击事件。
使用UIListener
这个也是推荐你们使用的一种方法,选择按钮后在Unity导航菜单栏中选择Component->NGUI->Internal ->Event Listener 。 挂在按钮上就能够,它没有任何参数。。
在任何一个脚本或者类中便可获得按钮的点击事件、把以下代码放在任意类中或者脚本中。
void Awake() { //获取须要监听的按钮对象 GameObject button= GameObject.Find("UI Root (2D)/Camera/Anchor/Panel/LoadUI/MainCommon/Button"); //设置这个按钮的监听,指向本类的ButtonClick方法中。 UIEventListener.Get(button).onClick= ButtonClick; } //计算按钮的点击事件 void ButtonClick(GameObjectbutton) { Debug.Log("GameObject "+ button.name); }
更多操做类型
publicclass UIEventListener: MonoBehaviour { publicdelegate voidVoidDelegate (GameObjectgo); publicdelegate voidBoolDelegate (GameObjectgo,bool state); publicdelegate voidFloatDelegate (GameObject go,float delta); publicdelegate voidVectorDelegate (GameObject go,Vector2 delta); publicdelegate voidStringDelegate (GameObject go,string text); publicdelegate voidObjectDelegate (GameObject go,GameObject draggedObject); publicdelegate voidKeyCodeDelegate (GameObject go,KeyCode key); publicobject parameter; publicVoidDelegate onSubmit; publicVoidDelegate onClick; publicVoidDelegate onDoubleClick; publicBoolDelegate onHover; publicBoolDelegate onPress; publicBoolDelegate onSelect; publicFloatDelegate onScroll; publicVectorDelegate onDrag; publicObjectDelegate onDrop; publicStringDelegate onInput; publicKeyCodeDelegate onKey; voidOnSubmit (){ if(onSubmit!= null)onSubmit(gameObject);} voidOnClick (){ if(onClick!= null)onClick(gameObject);} voidOnDoubleClick (){ if(onDoubleClick!= null)onDoubleClick(gameObject);} voidOnHover (boolisOver){ if(onHover!= null)onHover(gameObject,isOver);} voidOnPress (boolisPressed){ if(onPress!= null)onPress(gameObject,isPressed);} voidOnSelect (boolselected){ if(onSelect!= null)onSelect(gameObject,selected);} voidOnScroll (floatdelta){ if(onScroll!= null)onScroll(gameObject,delta);} voidOnDrag (Vector2delta){ if(onDrag!= null)onDrag(gameObject,delta);} voidOnDrop (GameObjectgo){ if(onDrop!= null)onDrop(gameObject,go);} voidOnInput (stringtext){ if(onInput!= null)onInput(gameObject,text);} voidOnKey (KeyCodekey){ if(onKey!= null)onKey(gameObject,key);} /// <summary> /// Get or add an event listener to the specified game object. /// </summary> staticpublic UIEventListenerGet (GameObjectgo) { UIEventListenerlistener =go.GetComponent<UIEventListener>(); if(listener== null)listener =go.AddComponent<UIEventListener>(); returnlistener; } }