Unity如何同步播放两个视频



我们正在使用Unity创建视差视频。我想知道的是同步和再现两种不同类型的视频。

目前,我准备了两部右眼电影和两部左眼电影,并反复播放。在这种情况下,两个视频可能会错位。代码如下。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Movie_Script : MonoBehaviour {
public MovieTexture movie_l;
public MovieTexture movie_r;
public Renderer renderer;
void Start () {
renderer = GetComponent<Renderer>();
movie_l = (MovieTexture)renderer.material.GetTexture("_Movie_L");
movie_r = (MovieTexture)renderer.material.GetTexture("_Movie_R");
movie_l.Play();
movie_r.Play();          
}
}

Shader "Unlit/Movie_sample"
{
Properties
{
_MainTex ("Texture", 2D) = "white" {}
_Movie_L("Movie_Left", 2D) = "white"{}
_Movie_R("Movie_Right", 2D) = "black"{}
}
...
}

还发生了什么。将两部电影并排排列以制作一部电影,播放时,左右剪辑以获得两个纹理,然后进行设置。然而,在这种情况下,将"纹理"转换为"纹理2D"似乎需要时间,并且它会降至约fps=10(上限约为60(。

我有一些同步视频的经验,但我使用的是VideoPlayer,请在播放前准备好视频播放器。

IEnumerator prepareVideo() {
videoPlayer1.Prepare();
videoPlayer2.Prepare();
while (!videoPlayer1.isPrepared)
{
Debug.Log("Preparing Video 1");
yield return null;
}
Debug.Log("Done Video 1");
while (!videoPlayer2.isPrepared)
{
Debug.Log("Preparing Video 2");
yield return null;
}
Debug.Log("Done Video 2");
videoPlayer1.Play();
videoPlayer2.Play();
}

最新更新