如何在播放器中播放音频?

时间:2019-06-14 14:49:33

标签: c# unity3d

需要一些帮助。我是团结的新手。我正在创建基于火箭飞船的游戏,并将音频文件附加到我的火箭飞船上。甚至编写了代码来在按下特定按钮时播放。

直到昨天,它似乎还可以正常工作,但是由于某些原因,今天当我玩游戏时不再播放音频。我看过文章和看过视频,但似乎没有帮助。

我已经尝试了几件事,从取消附加和重新附加音频文件到重写代码。

public AudioSource audioSource;

public void Thrust() 
{
    float rotationThisFrame = rcsThrust * Time.deltaTime;

    if (Input.GetKey(KeyCode.W)) 
    {
        rigidBody.AddRelativeForce(Vector3.up * rotationThisFrame);

        if (!audioSource.isPlaying)
            audioSource.Play();

        else
            audioSource.Stop();
     }
}

1 个答案:

答案 0 :(得分:2)

你在做

if (!audioSource.isPlaying)
    audioSource.Play();
else
    audioSource.Stop();

因此,如果audioSource在玩,您就Stop去玩!您基本上是交替地打开和关闭声音,每帧,所以您总是只“听到”一帧声音,然后从音频文件的开头开始。


您可能会建议将else大小写添加到周围的密钥检查中,例如

if (Input.GetKey(KeyCode.W)) 
{
    rigidBody.AddRelativeForce(Vector3.up * rotationThisFrame);

    if (!audioSource.isPlaying)
        audioSource.Play();
}
else
{
    audioSource.Stop();
}

假设课程audioSource是参考,clip现在设置为Play,同时按住 W 键和Stop当不按住 W 键时。