/// <summary> /// Returns the closest periodic coordinate of the input cartesian coordinate. /// </summary> public override Vector3 WrapCartesianCoordinate(Vector3 position) { Vector2Int offsetPosition = HexConverter.CartesianCoordToOffsetCoord(position); //We need to use the upperBound parameter instead of using the mapsize Property because for edges we need mapsize.y*2 if (offsetPosition.x < 0) { position = new Vector3(position.x + (mapSize.x * sqrt3), position.y, position.z); } else if (offsetPosition.x >= mapSize.x) { position = new Vector3(position.x - (mapSize.x * sqrt3), position.y, position.z); } return(position); }
/// <summary> /// updates all the mouse position data /// </summary> private void UpdatePlayerPositionData() { CursorIsOnMap = false; CartesianCoordInfiniteGrid = transform.position; CartesianCoordWrapped = transform.position; CubeCoordRaw = HexConverter.CartesianCoordToTileCoord(CartesianCoordInfiniteGrid); TileCoord = CubeCoordRaw; OffsetCoordInfiniteGrid = HexConverter.CartesianCoordToOffsetCoord(CartesianCoordInfiniteGrid); OffsetCoord = OffsetCoordInfiniteGrid; ClosestEdgeCoordInfiniteGrid = HexConverter.CartesianCoordToClosestEdgeCoord(CartesianCoordInfiniteGrid); ClosestEdgeCoord = ClosestEdgeCoordInfiniteGrid; ClosestCornerCoordInfiniteGrid = HexConverter.CartesianCoordToClosestCornerCoord(CartesianCoordInfiniteGrid); ClosestCornerCoord = ClosestCornerCoordInfiniteGrid; //SelectionRay = Camera.main.ScreenPointToRay(Input.mousePosition); if (hexMap != null) { if (hexMap.CoordinateWrapper != null) { CartesianCoordWrapped = hexMap.CoordinateWrapper.WrapCartesianCoordinate(CartesianCoordInfiniteGrid); } CursorIsOnMap = hexMap.GetTilePosition.IsInputCoordinateOnMap(CartesianCoordWrapped); TileCoord = HexConverter.CartesianCoordToTileCoord(CartesianCoordWrapped); OffsetCoord = HexConverter.TileCoordToOffsetTileCoord(TileCoord); ClosestEdgeCoord = HexConverter.CartesianCoordToClosestEdgeCoord(CartesianCoordWrapped); ClosestCornerCoord = HexConverter.CartesianCoordToClosestCornerCoord(CartesianCoordWrapped); } }