private void ChangeDirection()
    {
        ShuffleDirections(directionList);
        Vector2 NewDirection = Vector2.zero;

        foreach (directions direction in directionList)
        {
            switch (direction)
            {
            case directions.up:
            {
                if (pathfinder.CanWalkUp())
                {
                    walk.direction      = Vector2.up;
                    walk.walkHorizontal = false;
                    return;
                }
                break;
            }

            case directions.down:
            {
                if (pathfinder.CanWalkDown())
                {
                    walk.direction      = Vector2.down;
                    walk.walkHorizontal = false;
                    return;
                }
                break;
            }

            case directions.left:
            {
                if (pathfinder.CanWalkLeft())
                {
                    walk.direction      = Vector2.left;
                    walk.walkHorizontal = true;
                    return;
                }
                break;
            }

            case directions.right:
            {
                if (pathfinder.CanWalkRight())
                {
                    walk.direction      = Vector2.right;
                    walk.walkHorizontal = true;
                    return;
                }
                break;
            }

            default: break;
            }
        }
    }