Я делаю видеоигру в Unity и хочу сыграть вступление AudioSource Intro
при запуске игры, а затем зациклить основную тему уровня.
Это работает, но проблема в том, что яУ меня есть то, что при завершении вступления наступает тишина в 1 секунду, и он начинает воспроизводить тему.Это молчание также появляется, когда тема заканчивается и зацикливается, что создает ощущение, что игра останавливается на секунду.
public class audioTheme : MonoBehaviour
{
public AudioSource Intro;
private bool startedLoop;
void Start()
{
Intro = GetComponent<AudioSource>();
Intro.Play();
}
void FixedUpdate()
{
if (!Intro.isPlaying && !startedLoop)
{
FindObjectOfType<AudioManager>().Play("theme");
startedLoop = true;
}
}
}
У меня также есть скрипт «AudioManager», который содержит массив аудио, например, прыжокЗвуковые эффекты, монеты и основная тема.Это позволяет мне использовать любой звук, используя выражение FindObjectOfType <AudioManager> (). Play (" soundName ");
public class AudioManager : MonoBehaviour
{
public Sound[] sounds;
void Awake()
{
foreach (Sound s in sounds)
{
s.source = gameObject.AddComponent<AudioSource>();
s.source.clip = s.clip;
s.source.volume = s.volume;
s.source.loop = s.loop;
s.source.pitch = s.pitch;
}
}
public void Play(string name)
{
Sound s = Array.Find(sounds, sound => sound.name == name);
s.source.Play();
}
}