처음 도감켰을 때와 닫기 누르고 도감 버튼으로 눌렀을 때

 

프로그램 종료하고 다시 켰을때 색깔 유지 및 조정

 

+ 도감이 켜져있을 때 도감 버튼 다시 누르면 도감창 꺼짐

대화 씬의 예외처리 재수정하여 적의 이미지가 남아 있거나,

적의 이름이 나오지 않는 점 수정

 

 

 

룰렛을 돌렸을 때 폭탄이 나왔을 시 랜덤한 종류의 아이템이 출력되어 적용됨.

아이템을 획득시 가방에 저장됨.

각각의 룰렛에 있는 물약이미지들은 각각 다른 아이템을 준다.

이 중에서 파란색 물략 이미지가 나올 경우 3개의 비약중에 랜덤을 1개를 획득하여

가방에 저장한다.

 

'Project > Skill Steal Girl' 카테고리의 다른 글

[SSG] 대화, 룰렛 수정  (0) 2024.07.08
[SSG] 룰렛을 돌려 나온 아이템 획득하기  (0) 2024.07.03
[SSG] 대화창에 배경적용 시키기  (0) 2024.06.30
[SSG] Dialog Canavs Btn Test  (0) 2024.06.23
[SSG] Dialog RnD  (0) 2024.06.15

대화하는 인물과 대화를 케이스로 분류해놨는데

그에 맞춰 배경까지 연결

배경 리소스를 더 구하고

캐릭터가 각각 말할 때 DOTween을 이용하여 알파 값 처리할 필요가 있음

+ 대화하는 인물 연결 및 커멘터리(해설자 시점) 처리 필요

 

 

using System.Collections;
using TMPro;
using UnityEngine;
using UnityEngine.UI;

public class UISound : MonoBehaviour
{
    public AudioSource backgroundAudioSource;
    public AudioSource effectAudioSource;

    public Slider backgroundSoundSlider;
    [SerializeField] private TMP_Text backgroundSoundAmount;

    public Slider effectSoundSlider;
    [SerializeField] private TMP_Text effectSoundAmount;

    private int backgroundSoundValue;
    private int effectSoundValue;

    private IEnumerator CoPlay;
    private IEnumerator CoEffect;

    void Start()
    {
        // 슬라이더 값 로드
        LoadSoundSettings();

        backgroundSoundSlider.onValueChanged.AddListener(delegate { UpdateBackgroundSoundAmount(); });
        effectSoundSlider.onValueChanged.AddListener(delegate { UpdateEffectSoundAmount(); });

        UpdateBackgroundSoundAmount();
        UpdateEffectSoundAmount();

        CoPlay = CoPlayBackgroundMusic();
        StartCoroutine(CoPlay);
        CoEffect = CoPlayEffectMusic();
        StartCoroutine(CoEffect);
    }

    public IEnumerator CoPlayBackgroundMusic()
    {
        backgroundAudioSource.loop = true;
        backgroundAudioSource.Play();

        while (true)
        {
            float backVolume = backgroundSoundValue / 100f;
            backgroundAudioSource.volume = backVolume;
            yield return null;
        }
    }

    public IEnumerator CoPlayEffectMusic()
    {
        effectAudioSource.loop = true;
        effectAudioSource.Play();
        while (true)
        {
            float volume = effectSoundValue / 100f;
            effectAudioSource.volume = volume;
            yield return null;
        }
    }

    void UpdateBackgroundSoundAmount()
    {
        backgroundSoundValue = (int)backgroundSoundSlider.value;
        backgroundSoundAmount.text = backgroundSoundValue.ToString();
        SaveSoundSettings(); // 슬라이더 값 변경 시 저장

        Debug.Log($"Background Sound Value: {backgroundSoundValue}");
    }

    void UpdateEffectSoundAmount()
    {
        effectSoundValue = (int)effectSoundSlider.value;
        effectSoundAmount.text = effectSoundValue.ToString();
        SaveSoundSettings(); // 슬라이더 값 변경 시 저장

        Debug.Log($"Effect Sound Value: {effectSoundValue}");
    }

    void SaveSoundSettings()
    {
        PlayerPrefs.SetInt("BackgroundSoundValue", backgroundSoundValue);
        PlayerPrefs.SetInt("EffectSoundValue", effectSoundValue);
        PlayerPrefs.SetString("BackgroundSoundAmount", backgroundSoundAmount.text);
        PlayerPrefs.SetString("EffectSoundAmount", effectSoundAmount.text);
        PlayerPrefs.Save();

        Debug.Log("Sound settings saved.");
    }

    void LoadSoundSettings()
    {
        if (PlayerPrefs.HasKey("BackgroundSoundValue"))
        {
            backgroundSoundValue = PlayerPrefs.GetInt("BackgroundSoundValue");
            backgroundSoundSlider.value = backgroundSoundValue;
        }
        else
        {
            backgroundSoundValue = (int)backgroundSoundSlider.value;
        }

        if (PlayerPrefs.HasKey("EffectSoundValue"))
        {
            effectSoundValue = PlayerPrefs.GetInt("EffectSoundValue");
            effectSoundSlider.value = effectSoundValue;
        }
        else
        {
            effectSoundValue = (int)effectSoundSlider.value;
        }

        if (PlayerPrefs.HasKey("BackgroundSoundAmount"))
        {
            backgroundSoundAmount.text = PlayerPrefs.GetString("BackgroundSoundAmount");
        }

        if (PlayerPrefs.HasKey("EffectSoundAmount"))
        {
            effectSoundAmount.text = PlayerPrefs.GetString("EffectSoundAmount");
        }

        Debug.Log($"Loaded Background Sound Value: {backgroundSoundValue}");
        Debug.Log($"Loaded Effect Sound Value: {effectSoundValue}");
    }
}

+ Recent posts