public static void DrawGizmos(GridPlane gridPlane, GizmoType gizmoType) { Gizmos.color = Color.black; for (var row = 0; row <= gridPlane.Row; ++row) { Gizmos.DrawLine(gridPlane.RowBeginPosition(row), gridPlane.RowEndPosition(row)); } for (var col = 0; col <= gridPlane.Column; ++col) { Gizmos.DrawLine(gridPlane.ColumnBeginPosition(col), gridPlane.ColumnEndPosition(col)); } Gizmos.color = Color.white; for (var cellIndex = 0; cellIndex != gridPlane.Cells.Length; ++cellIndex) { var cell = gridPlane.Cells[cellIndex]; var cellOrigin = gridPlane.GetCellOrigin(cellIndex) + new Vector3(1, 0, 1) * 0.25f; if (cell != null) { if (cell.UsageFlag.HasFlag(CellUsage.Plant)) { Gizmos.DrawIcon(GetCellItemPosition(cellOrigin, gridPlane.CellSize.x, gridPlane.CellSize.y, Vector3.right, Vector3.forward, 3, 0), GizmosPlant); } if (cell.UsageFlag.HasFlag(CellUsage.Furniture)) { Gizmos.DrawIcon(GetCellItemPosition(cellOrigin, gridPlane.CellSize.x, gridPlane.CellSize.y, Vector3.right, Vector3.forward, 3, 1), GizmosFurniture); } if (cell.UsageFlag.HasFlag(CellUsage.Building)) { Gizmos.DrawIcon(GetCellItemPosition(cellOrigin, gridPlane.CellSize.x, gridPlane.CellSize.y, Vector3.right, Vector3.forward, 3, 2), GizmosBuilding); } } else { Gizmos.DrawIcon(GetCellItemPosition(cellOrigin, gridPlane.CellSize.x, gridPlane.CellSize.y, Vector3.right, Vector3.forward, 3, 0), GizmosPlant); Gizmos.DrawIcon(GetCellItemPosition(cellOrigin, gridPlane.CellSize.x, gridPlane.CellSize.y, Vector3.right, Vector3.forward, 3, 1), GizmosFurniture); Gizmos.DrawIcon(GetCellItemPosition(cellOrigin, gridPlane.CellSize.x, gridPlane.CellSize.y, Vector3.right, Vector3.forward, 3, 2), GizmosBuilding); } } }