반응형
이번에는 예전에 올리지 않았던 토글을 이용한 변경 방법에 대해 저장 겸 올려보려한다.
자 토글을 사용해서 배경음악을 변경해보자!
UI 오브젝트
지금 Set 관련 UI오브젝트는 이렇게 되어있다. 3개의 백그라운드 뮤직 토글이 있고 토글 그룹으로 묶여있다.
이건 SetManager로 컨트롤 할거다.
SoundManager.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Audio;
using UnityEngine.UI;
public class SoundManager : MonoBehaviour
{
public static SoundManager instance;
public AudioClip[] bgMusic;
public Toggle backGroundMusic1;
public Toggle backGroundMusic2;
public Toggle backGroundMusic3;
//private Toggle currentToggle;
private AudioSource audioSource;
public AudioMixer mixer;
public Slider volume;
private void Awake()
{
if (instance == null)
{
instance = this;
audioSource = GetComponent<AudioSource>();
DontDestroyOnLoad(gameObject);
}
else
{
Destroy(gameObject);
}
}
// Start is called before the first frame update
void Start()
{
PlayBackgroundMusic(0);
backGroundMusic1.onValueChanged.AddListener(delegate { ToggleClick(); });
backGroundMusic2.onValueChanged.AddListener(delegate { ToggleClick(); });
backGroundMusic3.onValueChanged.AddListener(delegate { ToggleClick(); });
}
// Update is called once per frame
void Update()
{
}
public void PlayBackgroundMusic(int index)
{
if (index >= 0 && index < bgMusic.Length)
{
audioSource.clip = bgMusic[index];
audioSource.Play();
}
}
public void ToggleClick()
{
if (backGroundMusic1.isOn)
{
PlayBackgroundMusic(0);
}
else if (backGroundMusic2.isOn)
{
PlayBackgroundMusic(1);
}
else if (backGroundMusic3.isOn)
{
PlayBackgroundMusic(2);
}
}
public void SetLevel(float sliderVal)
{
mixer.SetFloat("BackMg", Mathf.Log10(sliderVal) * 20);
}
}
완벽한 코드는 아니기때문에 수정이 필요하다.
왜냐면..
다른씬에서 현재씬으로 돌아왔을때 설정해둔 음악이랑 이미지를 제외하고는 Missing이 되가지고...... 맘이 아퍼벌여서.. 수정을 해야하는데 아직 다른걸로 바빠서 못하고이따.
하지만 해내야.. 발전을 하니....... 이번 갠프끝나고 바로 수정해봐야겠다.
반응형
'Record > TIL' 카테고리의 다른 글
[Unity] LOD (Level of Detail) (4) | 2024.06.14 |
---|---|
[Unity] 오브젝트 풀 (2) | 2024.06.13 |
[Unity] 3D 러너게임 팀프로젝트 마무리 (Ps.일주일치고는 완벽..!) (2) | 2024.06.11 |
[Unity] 유니티 충돌시 음악 플레이 되게하기 (+트리거) (0) | 2024.06.10 |
[Unity] Linked List, Stack, Queue (2) | 2024.06.07 |