统一-导入一个声音播放在键盘上

本文关键字:播放 声音 键盘 一个 导入 统一 | 更新日期: 2023-09-27 18:09:20

我有以下代码,但我没有得到任何类型的错误和很多谷歌没有提出任何答案

我做错了什么?

public class FirstPage : MonoBehaviour {
public AudioSource mySound;
// Use this for initialization
void Start () {
    mySound = Resources.Load("05 - Listen to the Man_[plixid.com]") as AudioSource;
}
void Update () {
if(Input.GetKeyUp(KeyCode.Space)){
        mySound.Play();
    };
}

}

统一-导入一个声音播放在键盘上

这可能是因为你试图加载AudioSource而不是AudioClip。

正确的方法是加载音频剪辑,将其分配给音频源,然后使用AudioSource.Play()

播放剪辑
public class FirstPage : MonoBehaviour {
    public AudioSource mySound;
    // Use this for initialization
    void Start () {
        var audioClip = Resources.Load<AudioClip>("05 - Listen to the Man_[plixid.com]");  //Load the AudioClip from the Resources Folder
        mySound.clip = audioClip;  //Assign it as AudioSource's clip
    }
    void Update () {
        if(Input.GetKeyUp(KeyCode.Space)){
            mySound.Play();
        }  //Also, I removed the extra semi-colon you had here
    }
}

"05 - Listen to the Man_[plixid.com]"是你项目中的资产吗?如果不是,我相信这就是为什么这行不通的原因。我很确定资源。Load只是为了将你现有的资源加载到RAM中,这样当你需要它们的时候它们就准备好了。

我做了一些环顾四周,你可能会发现这个线程很有用,以及这个页面从Unity参考文档。

这里有一个JS示例,应该可以做到这一点。如果你喜欢的话,希望你可以很容易地转换成c#:)

var www = new WWW ("file://" + Application.dataPath.Substring (0, Application.dataPath.LastIndexOf ("/")) + "/result.wav");
AudioClip myAudioClip= www.audioClip;
while (!myAudioClip.isReadyToPlay)
yield return www;
gameObject.GetComponent<AudioSource> ().audio.clip = myAudioClip;
audio.Play ();