public static int Distance(Tile a, Tile b) { Hex.CubePairs ca = Hex.OffsetToCube(GridManager.hex, a.position.x, a.position.y); Hex.CubePairs cb = Hex.OffsetToCube(GridManager.hex, b.position.x, b.position.y); return(Mathf.Max(Mathf.Abs(ca.x - cb.x), Mathf.Abs(ca.y - cb.y), Mathf.Abs(ca.z - cb.z))); }
public static int AxisDistance(Tile a, Tile b, Hex.Axis axis) { Hex.CubePairs ca = Hex.OffsetToCube(GridManager.hex, a.position.x, a.position.y); Hex.CubePairs cb = Hex.OffsetToCube(GridManager.hex, b.position.x, b.position.y); switch (axis) { case Hex.Axis.X: return(ca.x - cb.x); case Hex.Axis.Y: return(ca.y - cb.y); case Hex.Axis.Z: return(ca.z - cb.z); } return(0); }