Почему мой сценарий музыкального проигрывателя Unity3D воспроизводит мою музыку только в течение одной секунды?

#unity3d

Вопрос:

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

 using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class MusicManager : MonoBehaviour {

  public AudioSource music1;
  public AudioSource music2;

  private void Start() {
    music1.Play();
  }

  private void Update() {
    if (!music1.isPlaying) {
      music2.Play();
      music1.Pause();
    }
   
    if (!music2.isPlaying) {
      music1.Play();
      music2.Pause();
    }
  }
}
 

Проблема, с которой я сталкиваюсь, заключается в том, что music1 это воспроизводится только в течение одной секунды, а затем раздается статический звук. В чем здесь проблема и как я могу ее решить?

Комментарии:

1. Что ж, если ваши аудиоисточники не зацикливаются, вам не нужно приостанавливать их, когда isPlaying значение равно false.

2. Кроме того, почему бы вам не использовать один аудиоисточник? Если дорожки не перекрываются, вам понадобится только один аудиоисточник, тогда вы можете сослаться на свои аудиоклипы и вызвать метод AudioSource.PlayOneShot .

3. @Daniel спасибо, пока это работает. Но как мне снова воспроизвести исходный клип после остановки второго клипа?

4. Вы можете сохранить его в переменной и извлечь с помощью AudioSource.clip .