Trying to position a world space menu in front of the camera whilst ignoring the camera's tilt angle

I am trying to position a menu in front of a player. From searching on this forum, I found the correct way to achieve this is with the below code.

    // player is the Vive headset's camera
    Vector3 playerPosition = player.transform.position;
    Vector3 playerDirection = player.transform.forward;
    Vector3 spawnPos = playerPosition + (playerDirection * 1.5f);
    menu.transform.position = spawnPos;

However I am working in virtual reality, and the transform.forward of my player changes depending on what angle my player’s headset is tilted. This affects how close or far away the menu is appearing in front of the player.

For example if the player looks toward the ground instead of straight ahead, the menu spawns very close to them, but if they look straight ahead it spawns further away.

Is there some way to take the direction the player is looking in and grab the horizontal transform.forward, ignoring the precise angle the player is tilted at?

The solution for me was to create a copy of the player’s object and zero the X and the Z on the Quaternion of the player copy’s rotation, forcing the copy to look forward horizontally without tilt. Then I simply used the transform.forward of the edited player copy to calculate the position the menu needs to be spawned at.

        GameObject tempPlayer = new GameObject();
        tempPlayer.transform.position = player.transform.position;
        Quaternion tempRotation = player.transform.rotation;
        tempRotation.x = 0;
        tempRotation.z = 0;
        tempPlayer.transform.rotation = tempRotation;
        Destroy(tempPlayer);

        Vector3 spawnPos = player.transform.position + (tempPlayer.transform.forward * 1.5f);
        menu.transform.position = spawnPos;