Esempio n. 1
0
    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)));
    }
Esempio n. 2
0
    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);
    }