首页 > 解决方案 > 在 Unity3d 中的网络摄像头之间切换

问题描述

我正在尝试构建一个应用程序,用户可以在其中切换连接的网络摄像头。在启动时,默认网络摄像头应该会加载,它运行良好。之后,用户可以选择在摄像机之间切换。当我尝试这样做时,当我第二次调用另一台相机时,我试图放置网络摄像头纹理投影的四边形变黑了。我已附加 debug.log 以查看是否检测到摄像头的天气,摄像头正在检测。谁能告诉我我在哪里犯错。下面是调用网络摄像头二的代码。

public void camTwo()
    {
        WebCamDevice[] cam_devices = WebCamTexture.devices;
        WebCamTexture webcamTexture = new WebCamTexture(cam_devices[1].name);
        webcamTexture.Stop();
        if (webcamTexture == null)
        {
            Debug.LogError("web cam not found");
        }
        else
          {
            Debug.Log("camera found");
          }
        Renderer renderer = e.GetComponent<Renderer>();
        renderer.material.mainTexture = webcamTexture;
        webcamTexture.Play();
    }

标签: c#unity3d

解决方案


如果纹理上的材质设置为黑色,有时纹理可能是黑色的。另外,你的场景中有灯光吗?如果纹理位于 3D 对象(如平面或立方体)上,则需要光源才能看到它。与其以编程方式创建 webCamTexture,不如在 GUI 中手动创建您正在将相机传送到的纹理,并使用它来显示 WebCam(更容易查看它的属性并对其进行编辑)。


推荐阅读