/// <summary> /// 移除UI控件的所有监听器 /// </summary> /// <param name="target"></param> public void RemoveUIClickListeners(UIBehaviour target) { if (target != null) { if (UIEventTrigger.HasExistOn(target.transform)) { UIEventTrigger.Get(target).onClick = null; } } }
// Use this for initialization void Awake() { nameInputField = transform.Find("Name/InputField").GetComponent <InputField>(); transform.Find("ButtonOk").GetComponent <Button>().onClick.AddListener(ClickOk); transform.Find("ButtonRandom").GetComponent <Button>().onClick.AddListener(ClickRandomName); //拿到人物引用 role = transform.Find("Camera/Role"); UIEventTrigger.Get(transform.Find("RawImage").gameObject).onPointerDown += RotateRole; }
// Use this for initialization void Start() { playerCon = GameObject.FindGameObjectWithTag("Player").GetComponent <PlayerController> (); //技能 skillIcon[0].GetComponent <UISKillCD>().Init(0, playerCon); skillIcon[1].GetComponent <UISKillCD>().Init(1, playerCon); skillIcon[2].GetComponent <UISKillCD>().Init(2, playerCon); //普通攻击 UIEventTrigger.Get(attackIcon).onPointerDown = OnDownAttack; }
// Use this for initialization void Start() { Transform misc = GameObject.FindGameObjectWithTag("Misc").transform; for (int i = 0; i < buttonGrid.childCount; i++) { var btn = buttonGrid.GetChild(i); UIEventTrigger.Get(btn.gameObject).onPointerClick += OnClickOpenPanel; var follow = btn.gameObject.AddComponent <UIFollow> (); follow.worldPoint = misc.Find(btn.name); } }
public int strength; //战力 // Use this for initialization void Awake() { //1.给三个标签页绑定事件 for (int i = 1; i <= 3; i++) { Toggle toggle = transform.Find("Group/Toggle" + i).GetComponent <Toggle>(); //标签文字显示效果事件绑定 toggle.onValueChanged.AddListener(delegate(bool isOn) { toggle.transform.Find("Background/0/Text").gameObject.SetActive(isOn); }); //面板切换事件绑定 toggle.onValueChanged.AddListener(delegate(bool isOn) { toggle.transform.Find("Panel").gameObject.SetActive(isOn); }); } //2.给按钮绑定事件 关闭,切换 transform.Find("ButtonClose").GetComponent <Button>().onClick.AddListener(delegate() { SoundController.Instance.PlayAudio("audio"); Destroy(gameObject); }); transform.Find("ButtonClearUp").GetComponent <Button>().onClick.AddListener(delegate() { SoundController.Instance.PlayAudio("audio"); ClearUp(); }); //3.初始化 数据 panel1 = transform.Find("Group/Toggle1/Panel"); panel2 = transform.Find("Group/Toggle2/Panel"); panel3 = transform.Find("Group/Toggle3/Panel"); //拿到人物引用 role = transform.Find("Camera/tongren"); //绑定角色旋转事件 UIEventTrigger.Get(transform.Find("RawImage").gameObject).onPointerDown += RotateRole; //绑定角色切换事件 UIEventTrigger.Get(transform.Find("ButtonBack").gameObject).onPointerDown += CutRole; UIEventTrigger.Get(transform.Find("ButtonBack1").gameObject).onPointerDown += CutRole1; //绑定显示装备事件 UIEventTrigger.Get(transform.Find("RawImage/Button").gameObject).onPointerDown += ShowEquip; //初始化 playerName = transform.Find("Role/Name/Text").GetComponent <Text>(); grade = GameController.Instance.playerData.Level; //获取等级 strength = GameController.Instance.playerData.Strength; //获取战力 }
public void Start() { UIEventTrigger.Get(toggleAuto).onClick = () => { if (onSelectAuto != null) { onSelectAuto(toggleAuto.isOn); } }; UIEventTrigger.Get(btnQuit).onClick = () => { if (onClickQuit != null) { onClickQuit(); } }; }
// Use this for initialization void Start() { handler = transform.Find("Handler"); //绑定事件 UIEventTrigger listener = UIEventTrigger.Get(gameObject); if (Application.platform == RuntimePlatform.WindowsEditor)//如果是PC平台 { listener.onPointerDown += OnDownJoystickOnPC; } else if (Application.platform == RuntimePlatform.Android)//如果是安卓平台 { listener.onPointerDown += OnDownJoystickOnMobile; } }
/// <summary> /// 移除UI控件的监听器 /// </summary> /// <param name="controlName"></param> /// <param name="listener"></param> public void RemoveUIClickListener(string controlName, Action <string> listener) { Transform target = transform.Find(controlName); if (target != null) { if (UIEventTrigger.HasExistOn(target)) { UIEventTrigger.Get(target).onClickWithName -= listener; } } else { Debug.LogError("未找到UI控件:" + controlName); } }
//生成奖励 void InitReward() { //随机奖励 var itemDatas = GameController.Instance.ItemDatas; int amount = Random.Range(1, 6); for (int i = 0; i < amount; i++) { //Clone var item = itemDatas [Random.Range(0, itemDatas.Count)].Clone(); //数量随机 item.Amount = Random.Range(1, item.AmountMax + 1); rewardItems.Add(item); } //显示UI foreach (var item in rewardItems) { var ui = Instantiate(itemTemp); ui.SetParent(itemGrid); //替换图片 ui.Find("Icon").GetComponent <Image>().sprite = Resources.Load <Sprite>("Item/" + item.Icon); //数量 ui.Find("Amount").GetComponent <Text>().text = "" + item.Amount; //设置名称为id ui.name = "" + item.Id; //事件绑定 UIEventTrigger.Get(ui.gameObject).onPointerDown += OnDownItem; UIEventTrigger.Get(ui.gameObject).onPointerUp += OnUpItem; } //加入玩家背包 GameController.Instance.playerItems.AddRange(rewardItems); //更新 任务数据 foreach (var reward in rewardItems) { GameController.Instance.UpdateQuestProgress(QuestType.Collection, reward.Id, reward.Amount); } }
// Use this for initialization void Start() { //创建24个关卡 for (int i = 1; i <= 24; i++) { var btn = Instantiate(ButtonLevel); btn.SetParent(grid); //为关卡信息赋值 if (i <= GameController.Instance.UnLockedLevel) { btn.Find("Lock").gameObject.SetActive(false); btn.Find("Text").GetComponent <Text> ().text = i.ToString(); } UIEventTrigger.Get(btn.gameObject).onPointerClick += ClickLevelButton; } //事件的绑定 UIEventTrigger.Get(scrollRect.gameObject).onBeginDrag += OnBeginDrag; UIEventTrigger.Get(scrollRect.gameObject).onEndDrag += OnEndDrag; }
public void Init() { scrollRect = transform.Find("Scroll View").GetComponent <ScrollRect>(); //scrollRect.horizontalNormalizedPosition //float 范围 0 - 1 //给toggle绑定事件 for (int i = 1; i <= 3; i++) { UIEventTrigger listener = UIEventTrigger.Get(transform.Find("Group/Toggle" + i).gameObject); listener.onPointerClick += delegate(PointerEventData data) { if (data.pointerEnter.transform.parent.parent.GetComponent <Toggle>().isOn) { //return; } //Debug.Log(data.pointerEnter.transform.parent.parent.name); float endValue = float.Parse(data.pointerEnter.name); StopAllCoroutines(); StartCoroutine(ScrollMov(endValue)); }; } // 之前代码 //transform.Find("Group/Toggle3").GetComponent<Toggle>().onValueChanged.AddListener(delegate (bool isOn) //{ // if (isOn == true) // { // StopAllCoroutines(); // StartCoroutine(ScrollMov(1f)); // } //}); buttonPrefab = transform.Find("Button").gameObject; contentGrid = transform.Find("Scroll View/Viewport/Content"); //1.生成 24个按钮 for (int i = 1; i <= 24; i++) { Transform buttonClone = Instantiate(buttonPrefab).transform; buttonClone.SetParent(contentGrid); buttonClone.localScale = Vector3.one; buttonClone.name = i.ToString(); //改名字 //2.根据解锁情况,修改按钮的显示内容 if (i > GameController.Instance.playerData.LevelPlan) //未解锁 { buttonClone.Find("Button").gameObject.SetActive(false); buttonClone.Find("Button_Lock").gameObject.SetActive(true); //3.给按钮绑定事件 buttonClone.Find("Button_Lock").GetComponent <Button>().onClick.AddListener(ClickLockButton); } else//解锁 { buttonClone.Find("Button").gameObject.SetActive(true); buttonClone.Find("Button/Text").GetComponent <Text>().text = "" + i; buttonClone.Find("Button_Lock").gameObject.SetActive(false); //3.给按钮绑定事件 //手动绑定 } } }
// Use this for initialization void Start() { Init(); //1.绑定返回按钮事件 transform.Find("ButtonBack").GetComponent <Button>().onClick.AddListener(delegate() { GameController.Instance.uiController.DestroyAllPanel(); UIPanelLoad.Instance.Init("MainCity", delegate() { GameController.Instance.uiController.CreatePanel("PanelMainCity"); }); }); //2.生成奖励物品 //2.1 得到奖励物品的数据 List <Item> rewardList = new List <Item>(); List <Item> itemDataList = GameController.Instance.gameData.itemDataList; int rewardCount = Random.Range(2, 6);//奖励物品个数,随机 for (int i = 0; i < rewardCount; i++) { //奖励物品,随机 Item item = itemDataList[Random.Range(0, itemDataList.Count)].Clone(); item.Amount = Random.Range(1, item.AmountMax);//奖励物品的数量,随机 rewardList.Add(item); } //2.2 显示 GameObject itemPrefab = transform.Find("ItemPrefab").gameObject; for (int i = 0; i < rewardList.Count; i++) { //生成 Transform clone = Instantiate(itemPrefab).transform; clone.SetParent(transform.Find("Item/Grid")); clone.localScale = Vector3.one; //显示图片 clone.Find("Icon").GetComponent <Image>().sprite = Resources.Load <Sprite>("Item/" + rewardList[i].Icon); //显示数量 clone.Find("Text").GetComponent <Text>().text = "" + rewardList[i].Amount; //绑定事件 //改名子 clone.name = rewardList[i].Id.ToString(); UIEventTrigger listener = UIEventTrigger.Get(clone.gameObject); listener.onPointerDown += delegate(PointerEventData data) { //将点击物体的name 转为 物品id, if (data.pointerEnter == null) { return; } int id = int.Parse(data.pointerEnter.name); //通过id拿到数据 for (int k = 0; k < rewardList.Count; k++) { if (rewardList[k].Id == id) { //数据拿到了 //1 显示 tip transform.Find("Tip").gameObject.SetActive(true); //设置Tip显示位置 transform.Find("Tip").position = data.pointerEnter.transform.position; //2 显示UI //显示图片 transform.Find("Tip/Icon").GetComponent <Image>().sprite = Resources.Load <Sprite>("Item/" + rewardList[k].Icon); //显示名称 transform.Find("Tip/Name").GetComponent <Text>().text = "" + rewardList[k].Name; //显示描述 transform.Find("Tip/Desc").GetComponent <Text>().text = "描述:" + rewardList[k].Desc; } } }; listener.onPointerUp += delegate(PointerEventData data) { transform.Find("Tip").gameObject.SetActive(false); }; } //2.3 添加到玩家的背包 GameController.Instance.playerData.AddItem(rewardList); //3. 更新 玩家 关卡解锁进度 if (GameController.Instance.currentLevel == GameController.Instance.playerData.LevelPlan) { GameController.Instance.playerData.LevelPlan++;//通关了,解锁进度+1 } }
/// <summary> /// 初始化面板 /// </summary> /// <param name="panel">面板</param> /// <param name="type">道具类型</param> public void InitPanelGrid(Transform panel, ItemType type) { //1.生成20个格子 GameObject itemPrefab = transform.Find("ItemPrefab").gameObject; for (int i = 0; i < 20; i++) { //生成格子 Transform clone = Instantiate(itemPrefab).transform; clone.SetParent(panel.Find("Grid")); clone.Find("Icon").gameObject.SetActive(false); } //2.将玩家背包数据,分别显示到不同面板中 //2.1 将符合type的物品拿出来,放到一个list中 List <Item> list = new List <Item>(); for (int i = 0; i < playerItemList.Count; i++) { if (playerItemList[i].Type == type) { list.Add(playerItemList[i]); } } //2.2 显示UI for (int i = 0; i < list.Count; i++) { //生成 Transform clone = panel.Find("Grid").GetChild(i); //显示图片 clone.Find("Icon").GetComponent <Image>().sprite = Resources.Load <Sprite>("Item/" + list[i].Icon); clone.Find("Icon").gameObject.SetActive(true); //显示数量 clone.Find("Count").GetComponent <Text>().text = "" + list[i].Amount; //改名称 clone.name = list[i].Id.ToString(); //把格子名称更换为链表中相应数据的ID字段 ItemList.Add(clone, list[i]); UIEventTrigger listener = UIEventTrigger.Get(clone.gameObject); //点击事件 listener.onPointerDown += delegate(PointerEventData data) //弹提示的按压时间 { //将点击物体的name 转为 物品id, if (data.pointerEnter == null) { return; } PointerDown(); int id = int.Parse(data.pointerEnter.name); //通过id拿到数据 for (int k = 0; k < list.Count; k++) { if (list[k].Id == id) { //数据拿到了 //1 显示 tip transform.Find("Tip").gameObject.SetActive(true); //设置Tip显示位置 Vector3 pos = data.pointerEnter.transform.position; if (pos.y > transform.Find("TipClamp").position.y) { pos.y = transform.Find("TipClamp").position.y; } transform.Find("Tip").position = pos; //2 显示UI //显示图片 transform.Find("Tip/Icon").GetComponent <Image>().sprite = Resources.Load <Sprite>("Item/" + list[k].Icon); //显示名称 transform.Find("Tip/Name").GetComponent <Text>().text = "" + list[k].Name; //显示描述 transform.Find("Tip/Desc").GetComponent <Text>().text = "描述:" + list[k].Desc; } } }; listener.onPointerUp += delegate(PointerEventData data) //判断松开后提示框消失 { transform.Find("Tip").gameObject.SetActive(false); }; listener.onPointerClick += delegate(PointerEventData data) { if (data.pointerEnter == null) { return; } Transform date = data.pointerEnter.transform; StopCoroutine(TimeCor); //关停 按压计时协成 if (PressTime < 0.1f) //鼠标抬起拿到鼠标按压的时间并判断 { UIPanelTip.Instance.Init("使用物品"); int count = int.Parse(date.Find("Count").GetComponent <Text>().text); //把 转换为int类型 if (count > 0) { ItemList[date].Amount--; count--; if (count > 0) { date.Find("Count").GetComponent <Text>().text = count.ToString(); } else { date.Find("Icon").gameObject.SetActive(false); date.Find("Count").gameObject.SetActive(false); Destroy(date.GetComponent <UIEventTrigger>()); //字典删除相应的物品数据 playerItemList.Remove(ItemList[date]); } } GameController.Instance.playerData.ItemList = playerItemList; OutInit(); StartCoroutine(UpdataItem()); //出现是否使用点击物品的提示框 //UIPanelNotice.Instance.Init("是否使用该物体", delegate () //{ // Debug.Log(date.name); // int count = int.Parse(date.Find("Count").GetComponent<Text>().text);//把 转换为int类型 // if (count > 0) // { // ItemList[date].Amount--; // count--; // if (count > 0) // { // date.Find("Count").GetComponent<Text>().text = count.ToString(); // } // else // { // date.Find("Icon").gameObject.SetActive(false); // date.Find("Count").gameObject.SetActive(false); // Destroy(date.GetComponent<UIEventTrigger>()); // //字典删除相应的物品数据 // playerItemList.Remove(ItemList[date]); // } // } // GameController.Instance.playerData.ItemList = playerItemList; // OutInit(); // StartCoroutine(UpdataItem()); //}); } if (PressTime >= 0.1f) { //物品属性展示面板隐藏 Debug.LogError("物品属性展示面板"); } }; } //2.3 显示数量 panel.Find("Image/Text").GetComponent <Text>().text = list.Count + "/20"; }
// Use this for initialization void Start() { //设置按压事件 UIEventTrigger.Get(joystickLeft.gameObject).onPointerDown += OnDownJoystick; }
protected override void BindEvents() { base.BindEvents(); UIEventTrigger.Get(m_cBtnStart.gameObject).AddListener(EventTriggerType.PointerClick, OnClickStart); UIEventTrigger.Get(m_cBtnExit.gameObject).AddListener(EventTriggerType.PointerClick, OnClickExit); }
protected override void BindEvents() { base.BindEvents(); UIEventTrigger.Get(m_cBtnExit.gameObject).AddListener(UnityEngine.EventSystems.EventTriggerType.PointerClick, OnClickExit); }