在多个游戏对象上使用一个网络摄像头纹理
Posted
技术标签:
【中文标题】在多个游戏对象上使用一个网络摄像头纹理【英文标题】:Use one webcamtexture on multiple gameobject 【发布时间】:2019-07-30 09:40:50 【问题描述】:我正在尝试 This Page 将 Theta S 相机映射到球体。
有两个半球体。映射是由着色器完成的,所以我不必关心这个。两个球体都有相同的代码: 公共 int cameraNumber = 0; private WebCamTexture 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?
我已经尝试过This 和This,但都没有成功。 在此页面中,它在一行中提出了一个解决方案: 我无法理解。谁能帮帮我?
【问题讨论】:
【参考方案1】:如果我正确理解您的代码,您将创建两次 WebcamTexture(每个 Sphere 对象一个)。网络摄像头通常只能用作单个实例。
我会尝试在不同的脚本中创建一个 WebCamTexture 对象,这样您就可以获得一个纹理。然后,您可以尝试将其分配给球体的材料。
我不确定为什么您提供的链接之一使用 Resources.Load 来获取对材料的引用;这也可以通过检查员分配。 (但你现在没有使用它)。
您也可以在 WebCamTextures 上尝试“isPlaying”,看看两者是否都返回 true。
【讨论】:
以上是关于在多个游戏对象上使用一个网络摄像头纹理的主要内容,如果未能解决你的问题,请参考以下文章
在覆盆子上使用带有多个网络摄像头的 opencv 来拍摄延时摄影时出现多个 v4l 错误