Streaming Ricoh Theta Z1 Onto Unity

I’m currently having an issue with live streaming the Ricoh Theta Z1 onto unity. I’m using a wired USB A to USB C connection to connect the Z1 camera to my computer. I am using the Ricoh Theta UVC 3.0.0 driver. I am on Windows 10, and using Unity’s most recent 2023 version.
In Unity I am trying to connect the camera livestream as a material onto a sphere so I can view the 360 degree camera live video feed when connecting an oculus meta quest 2 to Unity. The current script I have running allows me to connect my laptop webcam to the sphere with no issues at all, but as soon as I change to the name of the device I want to use for live streaming to “RICOH THETA UVC” Unity crashes.
Saving the script with the changed name is fine, but as soon as I try to enter play mode with the name of the device I’m looking for being “RICOH THETA UVC”, the camera itself starts flashing live but unity crashes. I am able to get the live video running on OBS under the device name “RICOH THETA UVC” but for some reason on unity when I try to use it, it crashes. I have read just about every form and watched every video there is and still can’t find a fix to this issue. If anyone has any ideas please let me know.

as a test, does it work in OBS like this:

if so, then you can get it into Unity as a virtual cam


env

image

test script. Note that I am manually finding the THETA UVC in the list of cameras and then changing the value of devices[NUMBER] You need to adjust devices[4] to the value of UVC on your system.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class NewBehaviourScript : MonoBehaviour
{
    public Color color1 = Color.white;

    void Start()
    {   
        WebCamDevice[] devices = WebCamTexture.devices;
        Debug.Log("number of web cams connected: " + devices.Length);

        for ( int i = 0; i < devices.Length; i++) {
            string camName = devices[i].name;
            Debug.Log("webcam device " + i + " is " + camName);
        }


        Renderer rend = this.GetComponentInChildren<Renderer>();

        WebCamTexture mycam = new WebCamTexture();
        string thetaName = devices[4].name;
        Debug.Log("The webcam name is " + thetaName);
        mycam.deviceName = thetaName;
        rend.material.mainTexture = mycam;

        mycam.Play();
    }

    // Update is called once per frame
    void Update()
    {

    }
}