본문 바로가기
UNITY/PROJECT

다음 씬에서도 배경음악 이어지게 하기

by 램플릿 2024. 7. 11.

 

유니티에서 씬을 전환할 때 배경음악을 계속 이어지게 하려면 다음과 같이 해야합니다:

1. **오디오 관리자 스크립트 작성**: 배경음악을 관리할 스크립트를 작성합니다. 이 스크립트는 게임 전역에서 배경음악을 재생하고 일시 정지할 수 있어야 합니다.

2. **오디오 관리자 스크립트 예시**:

   using UnityEngine;

   public class AudioManager : MonoBehaviour
   {
       // 싱글톤 패턴을 사용하여 오디오 매니저를 관리할 수 있습니다.
       private static AudioManager instance;
       public static AudioManager Instance
       {
           get
           {
               if (instance == null)
               {
                   instance = FindObjectOfType<AudioManager>();
                   if (instance == null)
                   {
                       GameObject obj = new GameObject();
                       obj.name = "AudioManager";
                       instance = obj.AddComponent<AudioManager>();
                   }
               }
               return instance;
           }
       }

       private AudioSource audioSource;

       private void Awake()
       {
           if (Instance != this)
           {
               Destroy(gameObject);
               return;
           }

           DontDestroyOnLoad(gameObject); // 씬 전환 시 파괴되지 않도록 설정

           audioSource = gameObject.AddComponent<AudioSource>();
           audioSource.loop = true; // 배경음악을 반복 재생합니다.
       }

       // 배경음악 재생 함수
       public void PlayBackgroundMusic(AudioClip clip)
       {
           if (audioSource.isPlaying)
               audioSource.Stop();
           audioSource.clip = clip;
           audioSource.Play();
       }

       // 배경음악 일시 정지 함수
       public void PauseBackgroundMusic()
       {
           audioSource.Pause();
       }

       // 배경음악 재개 함수
       public void ResumeBackgroundMusic()
       {
           audioSource.UnPause();
       }

       // 필요에 따라 추가적인 기능을 구현할 수 있습니다.
   }





   이 스크립트는 게임 내에서 오디오 관리를 담당하는 싱글톤 클래스입니다. `PlayBackgroundMusic`, `PauseBackgroundMusic`, `ResumeBackgroundMusic` 함수들을 사용하여 배경음악을 관리할 수 있습니다.

3. **씬 전환 시 배경음악 관리**: 씬을 전환하는 스크립트에서 `AudioManager.Instance.PlayBackgroundMusic(배경음악클립);`를 호출하여 배경음악을 재생합니다. 이렇게 하면 씬이 전환되더라도 배경음악이 중단되지 않고 계속 재생됩니다.

4. **오디오 클립 준비**: 유니티에서 배경음악으로 사용할 오디오 클립을 준비하고, 이를 `PlayBackgroundMusic` 함수에 전달합니다.

위의 방법을 따라 구현하면 씬 전환 시 배경음악을 계속해서 이어지게 할 수 있습니다.

'UNITY > PROJECT' 카테고리의 다른 글

캐릭터 이동 방식의 장단점  (0) 2024.10.18
Input.GetAxis와 Input.GetAxisRaw  (1) 2024.10.07
Character Controller로 FPS 이동 구현하기.  (0) 2024.10.02
파티클에 collider 설정하기  (0) 2024.08.22
유니티 씬 전환  (0) 2024.06.19