首页 > 解决方案 > 如何在播放器中播放音频?

问题描述

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

直到昨天,它似乎工作得很好,但由于某种原因,今天我玩游戏时音频不再播放。我读过文章并观看过视频,但似乎没有任何帮助。

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

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

标签: c#unity3d

解决方案


你在做

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发出声音。WStopW


推荐阅读