Я делаю проект, в котором вы должны иметь возможность изменить задержку, с которой отображается канал с камеры мобильного телефона, чтобы люди могли видеть, как их мозг обрабатывает задержку / задержку. Мне удалось показать канал камеры на холсте, который следует за камерой вокруг и заполняет весь вид Google Cardboard, но мне интересно, как я мог отложить этот видео канал. Возможно, используя какой-нибудь массив изображений?
Я пытался найти решения онлайн, но не нашел ответа. Я пробовал массив texture2D, но производительность была очень плохой (я пробовал модифицированную версию this ).
private bool camAvailable;
private WebCamTexture backCam;
private Texture defaultBackground;
public RawImage background;
public AspectRatioFitter fit;
// Start is called before the first frame update
void Start()
{
defaultBackground = background.texture;
WebCamDevice[] devices = WebCamTexture.devices;
if (devices.Length == 0 )
{
Debug.Log("No camera detected");
camAvailable = false;
return;
}
for (int i = 0; i < devices.Length; i++)
{
if (!devices[i].isFrontFacing)
{
backCam = new WebCamTexture(devices[i].name, Screen.width, Screen.height); // Used to find the correct camera
}
}
if (backCam == null)
{
Debug.Log("Unable to find back camera");
return;
}
backCam.Play();
background.texture = backCam;
camAvailable = true;
} //Tell me if this is not enough code, I don't really have a lot of experience in Unity, so I am unsure of how much is required for a minimal reproducible example
Должен ли я использовать какой-нибудь буфер кадров или массив изображений / текстур для задержки видео? (Начать «запись», подождать указанное количество времени, начать воспроизведение «видео» на экране)
Заранее спасибо!