OnTriggerEnter and PhysicsRaycast Hits working in Editor, but not in VR Build

I’m running into a mysterious problem where OnTriggerEnter, Collisions, and Physics Raycasts are getting detected in the Editor runtime (and I’m able to confirm it with Debug.Logs and with trigger events), but these functions aren’t working when I build it for the VR headset (Meta Quest 2).

I have a previous version of this app that works for the PC and collisions/OnTriggerEnter works just fine. But since porting the project over into VR development, I’ve been running into this odd issue.

I’m using Mirror as my networking API, but I don’t think it has anything to do with it because I’ve tried using the functions in scripts without the Mirror namespace and the same behavior happens.

Some sample code looks like:

Physics.Raycast method

void Update()
{
    if (isLocalPlayer)
    {
        if (Physics.Raycast(transform.position, transform.TransformDirection(Vector3.forward), out RaycastHit hit, 2.0f))
        {
            if(transform.CompareTag("Player"))
            {
                whiteboardCam.SetActive(true);
                playerHead.SetActive(false);
                whiteboardCanvas.SetActive(true);
                playerBody.SetActive(false);
                //wbCanvas = this.gameObject.transform.GetChild(0).GetChild(5);
                // wbCanvas.parent = null;
                whiteboardCanvas.transform.position = new Vector3((float)31.71, (float)-1.18, (float)-5.17);
                Debug.Log("WB COLLIDED!");
            }
        }
    }
}

OnCollisionEnter method

void OnCollisionEnter(Collision collision)
{
    if (isLocalPlayer)
    {
        if (collision.gameObject.CompareTag("Seat"))
        {
            //Freeze RigidBody Positions X,Y,Z
            m_Rigidbody.constraints = RigidbodyConstraints.FreezeAll;
            playerOrigPosition = player.transform.position;
            player.transform.position = new Vector3(
            collision.gameObject.transform.GetChild(0).gameObject.transform.position.x,
            collision.gameObject.transform.GetChild(0).gameObject.transform.position.y,
            collision.gameObject.transform.GetChild(0).gameObject.transform.position.z
            );
            Debug.Log("Collision");
        }
        else
        {
            m_Rigidbody.constraints = RigidbodyConstraints.None;
            m_Rigidbody.constraints = RigidbodyConstraints.FreezeRotation;
        }
    }
}

OnTriggerEnter method

void OnTriggerEnter(Collider other)
{
    if (isLocalPlayer)
    {
        if (other.CompareTag("Whiteboard"))
        {
            whiteboardCam.SetActive(true);
            playerHead.SetActive(false);
            whiteboardCanvas.SetActive(true);
            playerBody.SetActive(false);
            whiteboardCanvas.transform.position = new Vector3((float)31.71, (float)-1.18, (float)-5.17);Debug.Log("WB COLLIDED!");
        }
    }
}