Вы делаете
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 ключ.