128 lines
4.3 KiB
C#
128 lines
4.3 KiB
C#
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<GameObject>("Prefabs/audioTriggerCenterPoint");
|
|
parentTrans = MapManager.Instance.mapAudioTrigger;
|
|
break;
|
|
case EditCellType.MonsterArea:
|
|
obj = Resources.Load<GameObject>("Prefabs/monsterPoint");
|
|
parentTrans = MapManager.Instance.mapMonsterArea;
|
|
break;
|
|
case EditCellType.TriggerCell:
|
|
obj = Resources.Load<GameObject>("Prefabs/audioTriggerCenterPoint");
|
|
parentTrans = MapManager.Instance.mapAudioTrigger;
|
|
break;
|
|
case EditCellType.NpcCell:
|
|
obj = Resources.Load<GameObject>("Prefabs/npcPoint");
|
|
parentTrans = MapManager.Instance.mapNPCArea;
|
|
break;
|
|
case EditCellType.ReliveCell:
|
|
obj = Resources.Load<GameObject>("Prefabs/reliveCenterPoint");
|
|
parentTrans = MapManager.Instance.mapReliveArea;
|
|
break;
|
|
case EditCellType.TeleportCell:
|
|
obj = Resources.Load<GameObject>("Prefabs/teleportPoint");
|
|
parentTrans = MapManager.Instance.mapTeleportArea;
|
|
break;
|
|
}
|
|
if (obj == null) return null;
|
|
GameObject cellObj = GameObject.Instantiate(obj,parentTrans);
|
|
var area = cellObj.GetComponent<SceneArea>();
|
|
if (area == null)
|
|
{
|
|
Debug.LogError($" {obj.name} ´íÎó...");
|
|
}
|
|
area.editCellType = baseItem.editCellType;
|
|
area.baseItem = baseItem;
|
|
baseItem.sceneArea = area;
|
|
area.RefSAreaInfo();
|
|
return area;
|
|
}
|
|
/// <summary>
|
|
/// Ë¢ÐÂÐÅÏ¢
|
|
/// </summary>
|
|
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<TextMeshPro>().text = $"¹ÖÎïÇø{monsterItem.monster.itemIdx}";
|
|
transform.Find("ID").GetComponent<TextMeshPro>().text = "ID:" + monsterItem.monster.id;
|
|
transform.Find("Num").GetComponent<TextMeshPro>().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<TextMeshPro>().text = "ID:" + npcItem.txtID.text;
|
|
}
|
|
break;
|
|
case EditCellType.ReliveCell:
|
|
|
|
break;
|
|
case EditCellType.TeleportCell:
|
|
|
|
break;
|
|
}
|
|
}
|
|
}
|