首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Unity3d中的电影文件和音频文件

Unity3d中的电影文件和音频文件
EN

Stack Overflow用户
提问于 2015-10-26 02:10:44
回答 2查看 1.6K关注 0票数 0

我有一个关于Unity中的MovieTexture的问题:我想在Unity中加载同一游戏对象上的电影和音频文件(而不是同时)。所以,我必须区分音频和视频文件,但我不能让它工作。这是我想要做的:

代码语言:javascript
复制
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个人版。

编辑:我尝试了这些建议,但无论我做什么,它仍然不起作用。

EN

回答 2

Stack Overflow用户

发布于 2015-10-26 10:16:40

代码语言:javascript
复制
if(file.movie != null)
{
    //logic for processing movie;
}
else if (file.audioClip !=null)
{
    //logic for processing audio;
}
票数 0
EN

Stack Overflow用户

发布于 2015-10-26 14:27:17

下面是我如何修复你的代码。首先,检查WWW对象file.movie是否为空。如果它不是空的,那就意味着你已经加载了一个电影文件。如果为null,则检查file.audioClip是否为null。如果它不是空的,那就意味着你已经加载了一个音频文件。

请注意,Unity只支持Ogg Theora用于电影纹理加载(http://docs.unity3d.com/Manual/class-MovieTexture.html)

代码语言:javascript
复制
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();
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33333176

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档