using UnityEngine; using UnityEngine.UI; using System.Collections; public class PopMenuItemLogic : UIItemBase { public Text m_MenuItemLabel; public delegate void MenuItemOnClicked(); private MenuItemOnClicked deleMenuItemOnClicked; // 响应函数托管 public class InitMenuInfo { public string strLabel; public MenuItemOnClicked funcItemOnClicked; public InitMenuInfo(string str, MenuItemOnClicked itemOnClicked) { strLabel = str; funcItemOnClicked = itemOnClicked; } } public override void Show(Hashtable hash) { base.Show(); var menuInfo = (InitMenuInfo)hash["InitObj"]; if (menuInfo != null) InitMenuItem(menuInfo.strLabel, menuInfo.funcItemOnClicked); } /// /// 菜单项点击事件 /// public void OnClicked() { MenuItemOnClicked temp = deleMenuItemOnClicked; deleMenuItemOnClicked = null; if (temp != null) { temp(); UIManager.CloseUI(UIInfo.PopMenuRoot); } } /// /// 初始化菜单项信息 /// /// 文字 /// 响应函数 public void InitMenuItem(string strLabel, MenuItemOnClicked funcItemOnClicked) { m_MenuItemLabel.text = strLabel; deleMenuItemOnClicked = funcItemOnClicked; } }