using HxGame.Data; using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Events; using UnityEngine.EventSystems; using UnityEngine.UI; public class UIJuBaoItem : UIBaseItem { public InputField txtID; //怪物ID public InputField txtKillCount; //击杀数量 public InputField txtInterval; //间隔时间 public InputField txtCurCount; //当前数量 public InputField txtRefreshCount; //刷新数量 public InputField txtPos; //中心点坐标 public InputField txtRadius; //半径 public Button btnDel; //删除 public int itemIdx; // Start is called before the first frame update protected override void Awake() { base.Awake(); AddInputNameClickEvent(txtPos); btnDel.onClick.AddListener(RemoveSelf); itemIdx = 0; } private void AddInputNameClickEvent(InputField input) //可以在Awake中调用 { var eventTrigger = input.gameObject.AddComponent(); UnityAction selectEvent = null; selectEvent = OnInputFieldClicked; EventTrigger.Entry onClick = new EventTrigger.Entry() { eventID = EventTriggerType.PointerClick }; onClick.callback.AddListener(selectEvent); eventTrigger.triggers.Add(onClick); } private void OnInputFieldClicked(BaseEventData data) { if (string.IsNullOrEmpty(txtID.text)) return; if (string.IsNullOrEmpty(txtRadius.text)) return; if (string.IsNullOrEmpty(txtKillCount.text)) return; if (string.IsNullOrEmpty(txtInterval.text)) return; if (string.IsNullOrEmpty(txtCurCount.text)) return; if (string.IsNullOrEmpty(txtRefreshCount.text)) return; UIWindow.Instance.uiJuBaosPanel.curActiveInput = data.selectedObject.GetComponent(); MapManager.Instance.SetCurJuBaoCenterPoint(itemIdx, Convert.ToInt32(txtRadius.text), Convert.ToInt32(txtID.text)); MapManager.Instance.SetEditCellType(MapManager.EditCellType.JuBaoArea); } private void RemoveSelf() { DestroyImmediate(gameObject); MapManager.Instance.RemoveMonsterPoint(itemIdx); } public bool CheckValid() { if (string.IsNullOrEmpty(txtID.text)) { UIWindow.Instance.ShowMessage("请填写怪物ID"); return false; } if (string.IsNullOrEmpty(txtKillCount.text)) { UIWindow.Instance.ShowMessage("请填写击杀数量"); return false; } if (string.IsNullOrEmpty(txtInterval.text)) { UIWindow.Instance.ShowMessage("请填写间隔时间"); return false; } if (string.IsNullOrEmpty(txtCurCount.text)) { UIWindow.Instance.ShowMessage("请填写当前数量"); return false; } if (string.IsNullOrEmpty(txtRefreshCount.text)) { UIWindow.Instance.ShowMessage("请填写刷新数量"); return false; } if (string.IsNullOrEmpty(txtPos.text)) { UIWindow.Instance.ShowMessage("请填写刷怪坐标"); return false; } if (string.IsNullOrEmpty(txtRadius.text)) { UIWindow.Instance.ShowMessage("请填写刷怪半径"); return false; } return true; } }