안 쓰던 블로그

unity 씬이 바뀌어도 배경음악 반복 재생/정지/일시정지 본문

유니티/개발

unity 씬이 바뀌어도 배경음악 반복 재생/정지/일시정지

proqk 2020. 3. 2. 16:05
반응형

1. 빈 게임오브젝트에 AudioSource를 붙이고 호출되었을 때 재생/loop설정

 

 

2. 스크립트에서 위의 게임오브젝트를 DontDestroyOnLoad 지정

나는 첫 화면->스테이지 화면으로 씬 바꿔주는 스크립트에다가 해서

씬이 처음 넘어갈 때부터 적용되게 했다(아래 코드에선 생략함)

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

public class StartMusic : MonoBehaviour
{
    GameObject BackgroundMusic;
    AudioSource backmusic;

    void Awake()
    {
        BackgroundMusic = GameObject.Find("BackgroundMusic");
        backmusic = BackgroundMusic.GetComponent<AudioSource>(); //배경음악 저장해둠
        if (backmusic.isPlaying) return; //배경음악이 재생되고 있다면 패스
        else
        {
            backmusic.Play();
            DontDestroyOnLoad(BackgroundMusic); //배경음악 계속 재생하게(이후 버튼매니저에서 조작)
        }
    }
}

 

3. 배경음악 멈추기/일시 정지

버튼 하나 만들어서 키고 끄게 만들었다

DontDestroyOnLoad되어 있는 BackgroundMusic 오브젝트를 가져와서, 붙어있는 AudioSource를 떼내고

AudioSource를 가지고 입맛대로 하면 된다

 

backmusic.isPlaying : 음악이 지금 재생되고 있으면 참, 아니면 거짓

backmusic.Pause() : 음악 일시 정지

backmusic.Stop() : 음악 정지

backmusic.Play() : 음악 재생 

    public void BackGroundMusicOffButton() //배경음악 키고 끄는 버튼
    {
        BackgroundMusic = GameObject.Find("BackgroundMusic");
        backmusic = BackgroundMusic.GetComponent<AudioSource>(); //배경음악 저장해둠
        if (backmusic.isPlaying) backmusic.Pause();
        else backmusic.Play();
    }

 

 

참고

https://answers.unity.com/questions/1260393/make-music-continue-playing-through-scenes.html

 

Make music continue playing through scenes - Unity Answers

 

answers.unity.com

 

반응형
Comments