我有一个关于Unity中的MovieTexture的问题:我想在Unity中加载同一游戏对象上的电影和音频文件(而不是同时)。所以,我必须区分音频和视频文件,但我不能让它工作。这是我想要做的:
MovieTexture movieTexture;
AudioSource audio = gameObject.GetComponent<AudioSource>();
WWW file = new WWW(@"file:///"+pathToFile); //example.mp4 or example.ogg
if(movie)
{
movieTexture = file.movie;
gameObject.GetComponent<Renderer>().material.mainTexture = movieTexture;
audio.clip = movieTexture.audioClip;
movieTexture.Play();
audio.Play();
}
if(audio)
{
audio.clip = file.audioClip;
audio.Play()
}我该怎么做呢?
我使用的是Unity 5.2个人版。
编辑:我尝试了这些建议,但无论我做什么,它仍然不起作用。
发布于 2015-10-26 10:16:40
if(file.movie != null)
{
//logic for processing movie;
}
else if (file.audioClip !=null)
{
//logic for processing audio;
}发布于 2015-10-26 14:27:17
下面是我如何修复你的代码。首先,检查WWW对象file.movie是否为空。如果它不是空的,那就意味着你已经加载了一个电影文件。如果为null,则检查file.audioClip是否为null。如果它不是空的,那就意味着你已经加载了一个音频文件。
请注意,Unity只支持Ogg Theora用于电影纹理加载(http://docs.unity3d.com/Manual/class-MovieTexture.html)
MovieTexture movieTexture;
AudioSource audio = gameObject.GetComponent<AudioSource>();
WWW file = new WWW(@"file:///" + pathToFile); //example.mp4 or example.ogg
if(file.movie != null)
{
movieTexture = file.movie;
gameObject.GetComponent<Renderer>().material.mainTexture = movieTexture;
audio.clip = movieTexture.audioClip;
movieTexture.Play();
audio.Play ();
}
else if(file.audioClip != null)
{
audio.clip = file.audioClip;
audio.Play();
}https://stackoverflow.com/questions/33333176
复制相似问题