Задать вопрос
@Anton12432

Как сделать, чтобы при смене сцены аудио продолжало проигрываться?

DontDestroyOnLoad не помогает

using UnityEngine;

public class AudioManager : MonoBehaviour
{
  [SerializeField] private AudioClip popSound;
  [SerializeField] private AudioClip clickSound;

  private void Awake()
  {
    DontDestroyOnLoad(gameObject);
  }

  public void PlaySound(string soundName)
  {
    AudioClip clipToPlay = null;

    switch (soundName.ToLower())
    {
      case "pop":
        clipToPlay = popSound;
        break;
      case "click":
        clipToPlay = clickSound;
        break;
    }

    if (clipToPlay != null)
    {
      print("play");
      AudioSource.PlayClipAtPoint(clipToPlay, Camera.main.transform.position);
    }
  }
}



using TMPro;
using UnityEngine;
using UnityEngine.SceneManagement;

public class GameOverPanel : MonoBehaviour
{
  [SerializeField] private GameObject gameOverPanel;
  [SerializeField] public TextMeshProUGUI scoreText;
  [SerializeField] public TextMeshProUGUI bestScoreText;
  private AudioManager audioManager;

  private void Start() {
    audioManager = FindAnyObjectByType<AudioManager>();
  }
  public void OpenGameOverPanel(bool isOpen)
  {
    gameOverPanel.SetActive(isOpen);
  }

  public void ReloadGame()
  {
    audioManager.PlaySound("click");
    SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
  }

  public void LoadHomeScene()
  {
    audioManager.PlaySound("click");
    SceneManager.LoadScene("Home");
  }
}
  • Вопрос задан
  • 31 просмотр
Подписаться 1 Простой Комментировать
Решения вопроса 1
@SWA512
Gamedev
Можно к сцене с музыкальным источником подгрузить игровую сцену:
SceneManager.LoadScene("YourScene", LoadSceneMode.Additive);

Затем по мере надобности, выгружать и загружать другие, не трогая музыкальную сцену.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы