Unity 내배캠 TIL

Unity 게임 개발 심화 (9주차 5일)

오늘도즐겨 2024. 11. 25. 23:48

🔥 11/21목요일 목표 🔥

🔎  팀 프로젝트 사운드 매니저 정리완료하기

🔎  팀 프로젝트 사운드 설정하기

🔎  팀 프로젝트 슬라이더에 사운드연결하기


Resources 파일에서 로드 하고 싶어 아래의 주석처리 된것을 불러 왔지만,

로드 되는것은 GameObject이라 로드가 되지 않았음.

    void Start()
    {
        GameManager.instance.SoundManager = this;
        audioSource = GetComponent<AudioSource>();
        GameAudioSource = GameManager.instance.GetComponent<AudioSource>();
        if (GameAudioSource == null)
        {
            GameAudioSource = GameManager.instance.gameObject.AddComponent<AudioSource>();
        }
        
        audioSource.volume = musicVolume; //볼륨 초기화
        //GameObject backGroundMusicSliderPrefabs = Resources.Load<GameObject>("UI/BGM");
        //backGroundMusicSlider = backGroundMusicSliderPrefabs.GetComponent<Slider>();
        //backGroundMusicSlider.onValueChanged.AddListener(ChangeVolume);

        GameAudioSource.volume = effectVolume;
        //GameObject effectVolumeSliderPrefabs = Resources.Load<GameObject>("UI/SFX");
        //effectVolumeSlider = effectVolumeSliderPrefabs.GetComponent<Slider>();
        //effectVolumeSlider.onValueChanged.AddListener(ChangeEffectVolume);
        
        PlayMusic(mainMusicClip);
        
    }

 

모든 UI를 프리팹화 하여 동적생성해주면서,

프리팹 내부에 달아 줘야하는 스크립트를 따로 만들게 됨

UIManager에서 Slider의 Value값을 OnValueChanged

public class UISoundController : UIBase
{
    [SerializeField]private Slider backGroundMusicSlider;
    [SerializeField]private Slider effectVolumeSlider;
    private SoundManager sound;
    
    private void Start()
    {
        sound = GameManager.instance.SoundManager;
        
        //슬라이더의
        backGroundMusicSlider.value = sound.audioSource.volume;
        effectVolumeSlider.value = sound.GameAudioSource.volume;
        
        backGroundMusicSlider.onValueChanged.AddListener(ChangeVolume);
        effectVolumeSlider.onValueChanged.AddListener(ChangeEffectVolume);
    }

    public void ChangeVolume(float volume)
    {
        sound.ChangeVolume(volume);
    }
    public void ChangeEffectVolume(float volume)
    {
        sound.ChangeEffectVolume(volume);
    }
}

 

🔥 11/22금요일 목표 🔥

🔎  팀 프로젝트 발표 하기