인게임 볼륨 조절, 게임 데이터 초기화

유승아·2024년 5월 17일

내일배움캠프

목록 보기
45/69

1. BGM 추가 및 인게임 볼륨 조절

게임 분위기가 심심하지 않게 BackGround Music을 추가했다.
오디오 관련해서 작업하는 건 처음이었다.

옵션창에서 BGM 볼륨을 조절해줄 것이기 때문에 Slider 추가
컴포넌트를 알맞게 넣어주고, 무한 재생되도록 Loop 체크

Slider에서 최소값, 최대값, 값을 정수로 받기 등을 설정할 수 있다.

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

public class SoundManager : MonoBehaviour
{
    public static SoundManager Instance; // 싱글톤화

    public Slider bgmSlider;
    public AudioSource audioSource;

    private float _bgmVol = 1f;

    private void Awake()
    {
        if (Instance == null)
        {
            Instance = this;
            DontDestroyOnLoad(gameObject); // 씬 넘어가도 파괴되지 않게
        }
        else
        {
            Destroy(gameObject); // 처음 만들어진 싱글톤을 제외하고 파괴
        }
    }

    void Start()
    {   // 값 불러오기, 재실행 해도 유지
        _bgmVol = PlayerPrefs.GetFloat("bgmVol", 1f); // 값이 비어있을 때 1f로 설정
        bgmSlider.value = _bgmVol;
        audioSource.volume = bgmSlider.value;
    }

    private void Update()
    {
        BgmSlider();
    }

    public void BgmSlider()
    {
        audioSource.volume = bgmSlider.value;

        _bgmVol = bgmSlider.value;
        PlayerPrefs.SetFloat("bgmVol", _bgmVol); // 값 저장
    }
}

StartScene에서 MainScene으로 넘어갈 때 BGM이 유지되도록 하기
볼륨 조절 후 재실행 시 조절값 유지
Slider로 값 조절하기

Slider를 이용한 볼륨조절
👉 https://medium.com/wasd/unity2d-9-slider%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EB%B3%BC%EB%A5%A8%EC%A1%B0%EC%A0%88-c88ec75f752d


2. 게임 데이터 초기화

움짤이라 소리가 들리진 않지만 슬라이더를 조작하면 볼륨 조절이 된다.

각 버튼의 이벤트로 판넬들을 활성화/비활성화 시켜줬고,
ResetAlertPanelOKBtn 에 데이터 삭제 기능을 넣었다.

public void DeleteData() // 데이터 삭제
{
    PlayerPrefs.DeleteAll();
}

이후 중간 점검으로 팀원 모두 main에 병합 후 오류 수정을 했다.

이건 플레이어가 오브젝트를 맞아도 EndPanel 이 안 뜨고 게임이 계속 진행되는 장면...
스코어 증가는 아직 적용하지 않은 상태

(머리 위에 오브젝트를 얹어놓은 펭귄이 웃겨서 움짤로 만들어봤다.)

0개의 댓글