using TMPro; using UnityEngine; using static MapManager; public class SceneArea : MonoBehaviour { public int Idx; public UIBaseItem baseItem { get; set; } public EditCellType editCellType { get; set; } public void SetSceneAreaData(EditCellType editCellType,int idx) { this.editCellType = editCellType; Idx = idx; } public void OnPointerClick() { Debug.Log($"选中我了..."); baseItem?.SetSelectPosItem(); } public void OnPointerDrag(Vector3 mousePosition) { Vector2Int pos = MapManager.Instance.map.selector.GetMouseByCell(); SetAreaPos(pos); baseItem?.SetItemPos(pos); } public void OnPointerUp() { Debug.Log($"松开我了..."); } public void SetAreaPos(Vector2Int pos) { Vector3 realpos = MapManager.Instance.map.selector.getPosByGrid(pos); transform.position = realpos; } public void SetAreaSize(int radius) { float scaleX = MapManager.Instance.map.sideWidth * radius * 2; float scaleY = MapManager.Instance.map.sideHeight * radius * 2; transform.localScale = new Vector3(scaleX, scaleY, 1); } public static SceneArea CreateSceneArea(UIBaseItem baseItem) { UnityEngine.GameObject obj = null; Transform parentTrans = null; switch (baseItem.editCellType) { case EditCellType.AudioTrigger: obj = Resources.Load("Prefabs/audioTriggerCenterPoint"); parentTrans = MapManager.Instance.mapAudioTrigger; break; case EditCellType.MonsterArea: obj = Resources.Load("Prefabs/monsterPoint"); parentTrans = MapManager.Instance.mapMonsterArea; break; case EditCellType.TriggerCell: obj = Resources.Load("Prefabs/audioTriggerCenterPoint"); parentTrans = MapManager.Instance.mapAudioTrigger; break; case EditCellType.NpcCell: obj = Resources.Load("Prefabs/npcPoint"); parentTrans = MapManager.Instance.mapNPCArea; break; case EditCellType.ReliveCell: obj = Resources.Load("Prefabs/reliveCenterPoint"); parentTrans = MapManager.Instance.mapReliveArea; break; case EditCellType.TeleportCell: obj = Resources.Load("Prefabs/teleportPoint"); parentTrans = MapManager.Instance.mapTeleportArea; break; } if (obj == null) return null; GameObject cellObj = GameObject.Instantiate(obj,parentTrans); var area = cellObj.GetComponent(); area.editCellType = baseItem.editCellType; area.baseItem = baseItem; baseItem.sceneArea = area; area.RefSAreaInfo(); return area; } /// /// 刷新信息 /// public void RefSAreaInfo() { if (baseItem == null) { Debug.LogError($"SceneArea Error {editCellType}"); return; } switch (editCellType) { case EditCellType.AudioTrigger: break; case EditCellType.MonsterArea: if (baseItem is UIMonsterItem monsterItem) { transform.Find("Name").GetComponent().text = $"怪物区{monsterItem.monster.itemIdx}"; transform.Find("ID").GetComponent().text = "ID:" + monsterItem.monster.id; transform.Find("Num").GetComponent().text = "Num:" + monsterItem.monster.num; SetAreaSize(monsterItem.monster.radius); } break; case EditCellType.TriggerCell: break; case EditCellType.NpcCell: if (baseItem is UINpcItem npcItem) { transform.Find("ID").GetComponent().text = "ID:" + npcItem.txtID.text; } break; case EditCellType.ReliveCell: break; case EditCellType.TeleportCell: break; } } }