我正在尝试从Streaming Assets文件夹中获取视频(.ogv),将其应用到曲面并播放。 (下面添加了C#代码) - Unity 5 Personal
void Start () {
private MovieTexture myMoviePlayerTexture;
string filePath = System.IO.Path.Combine(Application.streamingAssetsPath, "test.ogv");
WWW www = new WWW("file:///" + filePath);
Renderer r = GetComponent<Renderer>();
r.material.mainTexture = www.movie;
www.movie.Play();
}
将C#脚本添加到一个简单的平面上。
然而,当我将MovieTexture添加到一个平面(来自资源文件夹)时,它会毫无问题地播放。
((MovieTexture)GetComponent<Renderer>().material.mainTexture).Play();
编辑:问题:视频无法从Streaming Assets文件夹播放,看起来好像材料已加载但无法播放。
任何帮助appriciated。感谢。
修改
答案 0 :(得分:4)
您的问题中的代码甚至没有编译。有很多错误。
无论如何,请勿使用WWW
直接从www.movie.Play();
对象播放视频。首先从WWW
获取MovieTexture,然后从那里播放视频。另外,在播放视频之前,请检查MovieTexture.isReadyToPlay
是否为true
。您可以在coroutine
或Update()
功能中执行此操作。
确保 test.ogv 视频位于 StreamingAssets 文件夹中。您的屏幕截图未显示 StreamingAssets 文件夹中的内容。
最后,在飞机上播放视频现在已经过时了。您can在Unity的 RawImage 上播放视频,这在Unity中更易于使用。
我无法分辨您正在使用的 Unity 5 版本,但请更新为 5.5 或更高版本,然后使用以下代码:
MovieTexture myMoviePlayerTexture;
void Start()
{
string filePath = System.IO.Path.Combine(Application.streamingAssetsPath, "test.ogv");
WWW www = new WWW("file:///" + filePath);
Renderer r = GetComponent<Renderer>();
myMoviePlayerTexture = www.GetMovieTexture();
r.material.mainTexture = myMoviePlayerTexture;
}
void Update()
{
if (myMoviePlayerTexture.isReadyToPlay && !myMoviePlayerTexture.isPlaying)
{
myMoviePlayerTexture.Play();
}
}
值得注意的是MovieTexture
现已弃用。有关播放视频的最新方法,请参阅this帖子。