using HxGame.Data; using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class UITriggerPanel : MonoBehaviour { [HideInInspector] public InputField curActiveInput; public Transform itemParent; public Button btnAdd; // Start is called before the first frame update void Start() { btnAdd.onClick.AddListener(AddItem); } void AddItem() { UnityEngine.Object obj = Resources.Load("Prefabs/triggerItem"); if (obj == null) { UIWindow.Instance.ShowMessage("triggerItem.prefabʧ°Ü"); return; } GameObject go = Instantiate(obj) as GameObject; ; go.transform.SetParent(itemParent, false); var item = go.GetComponent(); item.itemIdx = itemParent.childCount; } public void AddItem(TriggerConfig t) { UnityEngine.Object obj = Resources.Load("Prefabs/triggerItem"); if (obj == null) { UIWindow.Instance.ShowMessage("teleportItem.prefabʧ°Ü"); return; } GameObject go = Instantiate(obj) as GameObject; ; go.transform.SetParent(itemParent, false); var item = go.GetComponent(); item.itemIdx = itemParent.childCount; MapManager.Instance.SetCurTriggerCenterPoint(item.itemIdx, t.radius, t.mode); item.txtPos.text = $"{t.pos.x},{t.pos.y}"; item.txtRadius.text = t.radius.ToString(); item.txtEvent.text = t.eventId.ToString(); item.dropMode.value = (int)t.mode; MapManager.Instance.CreateSpecialPoint(t.pos.x, t.pos.y, MapManager.EditCellType.TriggerCell); } public void SaveTriggersConfig() { int x, y; var ts = new TriggersConfig(); for (int i = 0; i < itemParent.childCount; i++) { var item = itemParent.GetChild(i).GetComponent(); if (!item.CheckValid()) return; var t = new TriggerConfig(); t.mode = (TriggerMode)item.dropMode.value; string[] tmp = item.txtPos.text.Split(','); if (tmp.Length != 2) return; x = Convert.ToInt32(tmp[0]); y = Convert.ToInt32(tmp[1]); t.pos = new Vector2Int(x, y); t.radius = Convert.ToInt32(item.txtRadius.text); t.eventId = Convert.ToInt32(item.txtEvent.text); ts.triggersConfig.Add(t); } int mapId = MapManager.Instance._curOpenMapId; ts.SaveXML(mapId); } public void LoadTriggersConfig(int mapId) { var ts = new TriggersConfig(); if (!ts.LoadXML(mapId)) return; for(int i=0; i