首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

Unity 事件二

2013-10-30 
Unity 事件2UIMouseEvent.cs:using UnityEngineusing Systempublic abstract class UIMouseEvent : Mono

Unity 事件2

UIMouseEvent.cs:

using UnityEngine;using System;public abstract class UIMouseEvent : MonoBehaviour{public EventHandler<EventArgs> MouseEvent { get; set; }}


 

UIEvent.cs:

using UnityEngine;using System;using System.Collections.Generic;using System.Collections;public class UIEvent{public static GameObject FindChild (string objName){GameObject obj = GameObject.Find("quickLoginBtn");return obj;}public static void AddChildMouseClickEvent (string objName, EventHandler<EventArgs> action){AddMouseClickEvent (FindChild (objName), action);}public static void AddMouseClickEvent (GameObject obj, EventHandler<EventArgs> action){if (obj != null) {AddEvent<UIMouseClick> (obj, action);}Debug.Log("111111");}public static void AddEvent<T> (GameObject obj, EventHandler<EventArgs> action) where T : UIMouseEvent{T mouseEvent = obj.GetComponent<T> ();if (null != mouseEvent) {GameObject.DestroyImmediate (mouseEvent);}mouseEvent = obj.AddComponent<T> ();mouseEvent.MouseEvent = action;Debug.Log("22222");}public static void AttachEvent (){Debug.Log ("AttachEvent");AddChildMouseClickEvent ("quickLoginBtn", OnClickStart);}private static void OnClickStart (object sender, EventArgs e){Debug.Log("OnClickStart");}}


 

UIMouseClick.cs:

using UnityEngine;using System;public class UIMouseClick : UIMouseEvent{void OnClick(){Debug.Log("hhhhh");UIEvent.AttachEvent();if(null != MouseEvent)MouseEvent(gameObject, null);}}


 

最后把UIMouseClick.cs放到NGUI的button上面就可以了,这个button的名字为“quickLoginBtn”,结果如下:

Unity 事件二

热点排行