Как я могу воспроизвести аудио в плеере? - PullRequest
0 голосов
/ 14 июня 2019

нужна помощь здесь. Я новичок в единстве. Я создаю игру на основе ракетных кораблей и прикрепил аудиофайл к своему ракетному кораблю. Даже написал код, чтобы заставить его играть, когда я нажимаю определенную кнопку.

До вчерашнего дня, казалось, все работало нормально, но по какой-то причине сегодня звук больше не воспроизводится, когда я играю в игру. Я читал статьи и смотрел видео, но ни одна из них не помогла.

Я пробовал несколько вещей: от отсоединения и повторного присоединения аудиофайла до переписывания кода.

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 Ответ

2 голосов
/ 14 июня 2019

Вы делаете

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 ключ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...