Unity3D 中的 AudioSource 无法播放 WAV 文件

AudioSource in Unity3D does not play WAV file

我在运行时单击时更新 Unity3D 中的 AudioSource。

我创建了一个 Cube 游戏对象。

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

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

所以我需要在每次单击事件时更新 AudioSource,每次它都会加载从数组中选择的新文件。

好的,Unity3D 编辑器显示我的 public 来自脚本的变量,并在运行时填充它们(在单击立方体时。)

我的 path 变量在 Unity3D 编辑器中完美显示。

但问题是虽然编辑器中的Audio Clip属性显示了橙色的小音频标志(好像something is there/loaded), 我从 Assets/Audio 文件夹中抓取的文件名总是空的。

没有播放,但我得到 没有错误

以及属性 playOnAwakevolumeetc。所有人都通过我的脚本准确地向我展示了我表达他们要做什么。

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

为什么我的 .wav 没有播放?

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

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();

}

卡布拉的建议正是我所需要的。添加 "yield return www;" 迫使我使用 IEnumerator 并且奇迹般地,它开始工作了!

StartCoroutine(playMusic(tmpGameObject));  

public IEnumerator playMusic(GameObject tmpGameObject){
    /*Same code from before goes here!*/
}