Используйте одну веб-камеру на нескольких игровых объектах
Я пытался эту страницу, чтобы отобразить камеру Theta S на сферу.
Таким образом, есть две полусферы. Отображение выполняется шейдерами, поэтому мне не нужно об этом заботиться. Обе части сферы имеют одинаковый код: public int cameraNumber = 0; частная веб-камера
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");
}
}
В чем проблема, только "сфера1" рендерит WebCamTexture. Я тестировал с дополнительной тестовой плоскостью, и только плоскость визуализировала WebCamTexture. (Обе сферы не сделали).
Кажется, только один игровой объект может отрисовать одну текстуру WebCam. Как я могу отрендерить одну WebCamTexture для нескольких игровых объектов?
Я уже пробовал это и это, но оба не работали.
На этой странице было предложено решение в одну строку: Что я не мог понять. Может кто-нибудь помочь мне?
0 ответов
Если я правильно понимаю ваш код, вы создаете дважды WebcamTexture (по одному для каждого объекта Sphere). Как правило, веб-камеры можно использовать только как единичный экземпляр.
Я бы попытался создать объект WebCamTexture в другом скрипте, чтобы вы получили одну текстуру. Затем вы можете попробовать присвоить это материалам вашей сферы.
Я не уверен, почему одна из приведенных вами ссылок использует Resources.Load для получения ссылки на материал; который также мог быть назначен через инспектора. (Но сейчас вы этим не пользуетесь).
Вы также можете попробовать isPlaying в WebCamTextures, чтобы проверить, вернут ли оба значения true.