/// <summary> /// Computes a polygon from points on given tilemaps. /// </summary> /// <param name="roomTemplate"></param> /// <returns></returns> public static GridPolygon GetPolygonFromRoomTemplate(GameObject roomTemplate) { var outlineHandler = roomTemplate.GetComponent <IRoomTemplateOutlineHandler>(); if (outlineHandler != null) { var polygon2d = outlineHandler.GetRoomTemplateOutline(); return(polygon2d?.GetGridPolygon()); } var tilemaps = RoomTemplateUtils.GetTilemaps(roomTemplate); var outline = RoomTemplateUtils.GetTilemapsForOutline(tilemaps); return(GetPolygonFromTilemaps(outline)); }
/// <summary> /// Computes a polygon from points on given tilemaps. /// </summary> /// <param name="tilemaps"></param> /// <returns></returns> public static GridPolygon GetPolygonFromTilemaps(ICollection <Tilemap> tilemaps) { var usedTiles = GetUsedTiles(RoomTemplateUtils.GetTilemapsForOutline(tilemaps)); return(GetPolygonFromTiles(usedTiles)); }