0

我正在尝试使用此页面将 Theta S 相机映射到球体。

在此处输入图像描述

有两个半球体。映射是由着色器完成的,所以我不必关心这个。两个球体的代码相同: public int cameraNumber = 0; 私人 WebCamTexture 网络摄像头纹理;

void Start() 
 {
     WebCamDevice[] devices = WebCamTexture.devices;
     if (devices.Length > cameraNumber) {
         webcamTexture = new WebCamTexture(devices[0].name, 1280, 720);
         GetComponent<Renderer>().material.mainTexture = webcamTexture;
         webcamTexture.Play();
     } else {
         Debug.Log("no camera");
     }
 }

问题是,只有“sphere1”呈现 WebCamTexture。我用额外的测试平面进行了测试,只有平面渲染了 WebCamTexture。(两个领域都没有)。
似乎只有一个游戏对象可以渲染一个 WebCamTexture。如何在多个游戏对象上渲染一个 WebCamTexture?

我已经尝试过ThisThis,但都没有工作。
在此页面中,它在一行中提出了一个解决方案: 在此处输入图像描述我无法理解。谁能帮我?

4

1 回答 1

0

如果我正确理解您的代码,您将创建两次 WebcamTexture(每个 Sphere 对象一个)。网络摄像头通常只能用作单个实例。

我会尝试在不同的脚本中创建一个 WebCamTexture 对象,这样你就可以获得一个纹理。然后,您可以尝试将其分配给球体的材料。

我不确定为什么您提供的链接之一使用 Resources.Load 来获取对材料的引用;这也可以通过检查员分配。(但你现在没有使用它)。

您也可以在 WebCamTextures 上尝试“isPlaying”,看看两者是否都返回 true。

于 2020-04-02T16:51:51.077 回答