공부/Unity

[Unity] 유니티 종료 버튼 만들기, 효과음과 배경음 재생하는 SoundManager

굴러다니다니 2023. 9. 19. 12:49
728x90

Exit 버튼 (Unity에서는 실행중인 game씬이 종료, Build된 상태면 실행중인 Build 파일이 종료

public void BtnExit()
    {
        #if UNITY_EDITOR
            UnityEditor.EditorApplication.isPlaying = false;
        #else
            Application.Quit();
        #endif
    }

 

효과음 및 배경음악 SoundManager

제일 처음 시작하는 부분에 빈 오브젝트 > Soundmanager 해두고 스크립트 넣어주기

자식으로 빈 오브젝트 추가해서 BGM, Effect로 써주고 각각 Audio Source 추가해주기

 

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

public class SoundManager : MonoBehaviour
{
    public static SoundManager instance = null;

    [Header("음량")]
    public float volumeBGM = 1f;
    public float volumeEffect = 1f;

    [Header("배경음악")]
    public AudioSource asBGM;
    public AudioClip BGMIntro;
    public AudioClip BGMMain;

    [Header("효과음")]
    public AudioSource asEffect;
    public AudioClip btn;
    public AudioClip potion;

    private void Awake()
    {
        if (instance == null)
        {
            instance = this;
        }
        else
        {
            Destroy(gameObject);
        }
        DontDestroyOnLoad(gameObject);
        asBGM.loop = true;
        asBGM.playOnAwake = true;
        PlayBGM("intro");
        asEffect.loop = false;
        asEffect.playOnAwake = false;
    }
    private void PlayBGM(string bgm)
    {
        switch (bgm)
        {
            case "intro":
                asBGM.clip = BGMIntro;
                break;
            case "main":
                asBGM.clip = BGMMain;
                break;
        }
        asBGM.Play();
    }
    private void PlayEffect(string effect)
    {
        switch (effect)
        {
            case "btn":
                asEffect.clip = btn;
                break;

        }
        asEffect.Play();
    }
}

위와 같이 선언 해 두고 효과음 재생하고 싶을 때에는

SoundManager.instance.PlayEffect("btn");

식으로 불러오면 된다!

728x90