public TransformController(Transform transform, GameMap map, int initialRow, int initialCol)
    {
        this.transform = transform;
        controller     = new PositionController <GameMap, GameTile>(map, GameTile.elevationScale, initialRow, initialCol);

        GameTile initialPositionedAbove = controller.CurrentPosition().positionedAbove;
        Vector3  initialPosition        = initialPositionedAbove.WorldPosition(controller.CurrentPosition().elevation);

        initialPosition.y += transform.lossyScale.y / 2;
        transform.position = initialPosition;
    }