首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >AudioSource在Unity3D中不播放WAV文件

AudioSource在Unity3D中不播放WAV文件
EN

Stack Overflow用户
提问于 2016-07-07 17:30:34
回答 1查看 2K关注 0票数 1

单击时,我在运行时在Unity3D中更新一个Unity3D。

我创建了一个立方体游戏对象。

单击多维数据集时,将属性发送到我的AudioSource。

注意:--这是为了最终播放许多其他wav文件,这些文件是通过管道分隔的wav文件的字符串数组传入的(这些文件存在于Assets文件夹中)。

因此,我需要用每次单击事件更新AudioSource,这样每次都会加载从数组中选择的新文件。

好的,Unity3D编辑器显示脚本中的公共变量,并在运行时(单击多维数据集时)填充它们。

我的路径变量在Unity3D编辑器中显示得很好。

但问题是,尽管编辑器中的音频剪辑属性显示了橙色的小音频徽标(好像有东西在/加载),但我从资产/音频文件夹中获取的文件名始终是空的。

什么都不玩,但我得到没有错误

属性playOnAwake、卷等都向我展示了如何通过脚本来表达它们。

注意:在第一个图像中,路径变量正确地指向.wav文件。

为什么我的.wav不玩?

为什么.wav文件名没有出现在音频剪辑文本框区域?

代码语言:javascript
运行
复制
public Color clickColor;
public Color releaseColor;
public int clickcount = 0;    
public WWW www;
public AudioClip myAudioClip;
public string path;

void CubeClicked(GameObject tmpGameObject)
{
    // CLICK COUNT
    clickcount++;

    // CLICK COLOR
    tmpGameObject.GetComponent<Renderer>().materials[0].color = clickColor; 

    // IS TRIGGER
    tmpGameObject.GetComponent<Collider>().isTrigger = true; 

    //AUDIO
    path = "file://" + Application.dataPath.Substring(0, Application.dataPath.LastIndexOf("/")) + "/Assets/Audio/JetEngine.wav";
    www = new WWW(path);
    myAudioClip = www.audioClip;

    tmpGameObject.GetComponent<AudioSource>().clip = myAudioClip;
    tmpGameObject.GetComponent<AudioSource>().playOnAwake = false;
    tmpGameObject.GetComponent<AudioSource>().volume = 0.999f;
    tmpGameObject.GetComponent<AudioSource>().Play();

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-07 20:00:14

卡布拉的建议正是我所需要的。添加“收益率回报”,迫使我使用IEnumerator,并神奇地,它开始工作!

代码语言:javascript
运行
复制
StartCoroutine(playMusic(tmpGameObject));  

public IEnumerator playMusic(GameObject tmpGameObject){
    /*Same code from before goes here!*/
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38251777

复制
相关文章

相似问题

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