using UnityEngine; using UnityEngine.AI; namespace ET { public struct RectIndices { public int startRow; public int endRow; public int startCol; public int endCol; } [ComponentOf(typeof(Scene))] public class MapComponent : Entity, IAwake { public NavMeshSurface2d NavMesh2d; // 山谷内部地图信息 public Vector3 MapMinPos = Vector3.zero; public Vector3 MapMaxPos= Vector3.zero; public Vector2 MapSize; public float TileMapWidth; public float TileMapHeight; public float HalfTileMapWidth; public float HalfTileMapHeight; // 山谷内部可放置位置信息 public Vector3 AvalablePlaceMinPos = Vector3.zero; public Vector2 AvalablePlaceSize; // 占用位置二维数组 public int MaxTileX; public int MaxTileY; public bool[,] OccupyPlaceMap; // 所有建筑根节点 public Transform BuildingRoot; // 所有人物根节点 public Transform PeopleRoot; // 所有资源根节点 public Transform ResourceRoot; public float TileWidth = 1.0f; public float TileHeight = 0.5f; public float HalfTileWidth = 0.5f; public float HalfTileHeight = 0.25f; // 土地网格指示 public MeshFilter GridMeshFilter; public Mesh GridMesh; // 占用面积提示器 public MeshRenderer OccupyPlaceIndicatorMR; public GameObject OccupyPlaceInidcator; public Color ValidColor = new Color(0, 1, 0, 0.5f); public Color InvalidColor = new Color(1, 0, 0, 0.5f); // 更新建筑信息 public long UpdateBuildingDataTimer; } }