From a77e1ab6e22f19a216ea319a5d31a0ccd2f91087 Mon Sep 17 00:00:00 2001 From: Lim0_C Date: Tue, 29 Apr 2025 15:49:14 +0900 Subject: [PATCH] =?UTF-8?q?DEG-86=20[Feat]=20=ED=8C=9D=EC=97=85=20?= =?UTF-8?q?=EB=B0=8F=20=EC=84=A4=EC=A0=95=20UI=20=EC=8A=A4=ED=81=AC?= =?UTF-8?q?=EB=A6=BD=ED=8A=B8=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/LYM/Scenes/MainUI.unity | 4 +- Assets/LYM/Scripts/MainUIPanelController.cs | 10 ++- Assets/LYM/Scripts/PanelController.cs | 1 + Assets/LYM/Scripts/PopupPanelController.cs | 19 ++---- Assets/LYM/Scripts/SettingsPanelController.cs | 62 ++++++++++++++++--- Assets/LYM/Scripts/SliderButton.cs | 11 ++-- Assets/LYM/UIPrefabs/MainUIPanel.prefab | 4 +- Assets/LYM/UIPrefabs/PopupPanel.prefab | 4 +- Assets/LYM/UIPrefabs/SettingsPanel.prefab | 3 + .../LYM/UIPrefabs/SettingsPanel.prefab.meta | 7 +++ 10 files changed, 92 insertions(+), 33 deletions(-) create mode 100644 Assets/LYM/UIPrefabs/SettingsPanel.prefab create mode 100644 Assets/LYM/UIPrefabs/SettingsPanel.prefab.meta diff --git a/Assets/LYM/Scenes/MainUI.unity b/Assets/LYM/Scenes/MainUI.unity index 31d9e480..2bce06d4 100644 --- a/Assets/LYM/Scenes/MainUI.unity +++ b/Assets/LYM/Scenes/MainUI.unity @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:cd521b1783e17bc23b01aba59920f95ee01084d5eafe341e64439737e8f6c88f -size 198694 +oid sha256:38cbfd282bcf3484d2a2b57cbfb87c5fcaf5e026b926d152194e68872313950a +size 139776 diff --git a/Assets/LYM/Scripts/MainUIPanelController.cs b/Assets/LYM/Scripts/MainUIPanelController.cs index 0dcf053c..60ef0fac 100644 --- a/Assets/LYM/Scripts/MainUIPanelController.cs +++ b/Assets/LYM/Scripts/MainUIPanelController.cs @@ -5,14 +5,18 @@ using UnityEngine.UI; public class MainUIPanelController : MonoBehaviour { - + [SerializeField] private GameObject settingsPanelPrefab; + [SerializeField] private GameObject popupPanelPrefab; + public void OnClickStartButton() { - + var popupPanel = Instantiate(popupPanelPrefab, transform); + popupPanel.GetComponent().Show("This is PopupPanel!!", () => {Debug.Log("Confirmed");}); } public void OnClickSettingsButton() { - + var settingsPanel = Instantiate(settingsPanelPrefab, transform); + settingsPanel.GetComponent().Show(); } } diff --git a/Assets/LYM/Scripts/PanelController.cs b/Assets/LYM/Scripts/PanelController.cs index 2cc6cb45..587b6ba2 100644 --- a/Assets/LYM/Scripts/PanelController.cs +++ b/Assets/LYM/Scripts/PanelController.cs @@ -26,5 +26,6 @@ public class PanelController : MonoBehaviour { if (_canvasGroup == null) return; _canvasGroup.alpha = 0; + Destroy(gameObject); } } diff --git a/Assets/LYM/Scripts/PopupPanelController.cs b/Assets/LYM/Scripts/PopupPanelController.cs index 90017425..5aa09bbc 100644 --- a/Assets/LYM/Scripts/PopupPanelController.cs +++ b/Assets/LYM/Scripts/PopupPanelController.cs @@ -1,6 +1,7 @@ using System; using System.Collections; using System.Collections.Generic; +using TMPro; using UnityEngine; using UnityEngine.UI; @@ -8,26 +9,18 @@ public class PopupPanelController : PanelController { [SerializeField] private GameObject confirmButton; [SerializeField] private GameObject contradictButton; + [SerializeField] private TMP_Text popupText; public delegate void OnConfirmDelegate(); private OnConfirmDelegate _onConfirmDelegate; public delegate void OnContradictDelegate(); private OnContradictDelegate _onContradictDelegate; - private void Start() - { - Show(false, "수면에 들 시간입니다.", () => {}); - } - public void Show(bool isNeed2Contradict, string message, OnConfirmDelegate onConfirm) + public void Show(string message, OnConfirmDelegate onConfirm, OnContradictDelegate onContradict = null) { - confirmButton.SetActive(isNeed2Contradict); - _onConfirmDelegate = onConfirm; - base.Show(); - } - - public void Show(bool isNeed2Contradict, string message, OnConfirmDelegate onConfirm, OnContradictDelegate onContradict) - { - confirmButton.SetActive(isNeed2Contradict); + bool isNeed2Contradict = onContradict != null; + contradictButton.SetActive(isNeed2Contradict); + popupText.text = message; _onConfirmDelegate = onConfirm; _onContradictDelegate = onContradict; base.Show(); diff --git a/Assets/LYM/Scripts/SettingsPanelController.cs b/Assets/LYM/Scripts/SettingsPanelController.cs index 87787888..996476b6 100644 --- a/Assets/LYM/Scripts/SettingsPanelController.cs +++ b/Assets/LYM/Scripts/SettingsPanelController.cs @@ -1,18 +1,66 @@ +using System; using System.Collections; using System.Collections.Generic; using UnityEngine; +using UnityEngine.UI; -public class SettingsPanelController : MonoBehaviour +public class SettingsPanelController : PanelController { - // Start is called before the first frame update - void Start() + + [SerializeField] private SliderButton sfxSliderButton; + [SerializeField] private SliderButton bgmSliderButton; + [SerializeField] private Slider sfxSlider; + [SerializeField] private Slider bgmSlider; + + private void Start() { - + InitSettings(); } - // Update is called once per frame - void Update() + private void InitSettings() { - + //todo:저장된 데이터를 가져오게 해야함 + var sfxIsActive = true; + var bgmIsActive = true; + sfxSliderButton.Init(sfxIsActive); + bgmSliderButton.Init(bgmIsActive); + //todo:저장된 데이터를 가져오게 해야함 + var sfxSliderValue = 1f; + var bgmSliderValue = 1f; + sfxSlider.value = sfxSliderValue; + bgmSlider.value = bgmSliderValue; + Show(); + } + + //버튼 클릭 시 마다 호출 + public void SFXSliderButtonClicked() + { + sfxSliderButton.OnClicked(); + //todo: sfxSliderButton.IsActive를 기준으로 뮤트 여부 확인 및 뮤트 적용 + } + + public void BGMSliderButtonClicked() + { + bgmSliderButton.OnClicked(); + //todo: sfxSliderButton.IsActive를 기준으로 뮤트 여부 확인 및 뮤트 적용 + } + + //슬라이더 변경 시 마다 호출 + public void OnSFXSliderValueChanged(float value) + { + //todo: 소리 볼륨 조절 + Debug.Log("sfx changed value" + value); + } + + public void OnBGMSliderValueChanged(float value) + { + //todo: 소리 볼륨 조절 + Debug.Log("bgm changed value" + value); + } + + public void OnCloseButtonClicked() + { + //todo: 설정 저장 필요 + Hide(); } } diff --git a/Assets/LYM/Scripts/SliderButton.cs b/Assets/LYM/Scripts/SliderButton.cs index 5fd97673..4cb5e416 100644 --- a/Assets/LYM/Scripts/SliderButton.cs +++ b/Assets/LYM/Scripts/SliderButton.cs @@ -1,3 +1,4 @@ +using System; using System.Collections; using System.Collections.Generic; using UnityEngine; @@ -15,12 +16,13 @@ public class SliderButton : MonoBehaviour private Color32 _offColor = new Color32(125, 125, 125, 255); private Color32 _onColor = new Color32(70, 255, 90, 255); - public void Init(bool isActive) { IsActive = isActive; var xLocation = IsActive ? _onXLocation : _offXLocation; + var color = IsActive ? _onColor : _offColor; handle.transform.localPosition = new Vector3(xLocation, handle.transform.localPosition.y, 0); + backgroundImage.color = color; } public void OnClicked() @@ -28,11 +30,12 @@ public class SliderButton : MonoBehaviour if (IsActive) { handle.transform.DOLocalMoveX(_offXLocation, 0.2f); - backgroundImage.DOColor() + backgroundImage.DOColor(_offColor, 0.2f); } - else + else { - handle.transform.DOLocalMoveX(_onXLocation, 0.2f); + handle.transform.DOLocalMoveX(_onXLocation, 0.2f); + backgroundImage.DOColor(_onColor, 0.2f); } IsActive = !IsActive; } diff --git a/Assets/LYM/UIPrefabs/MainUIPanel.prefab b/Assets/LYM/UIPrefabs/MainUIPanel.prefab index eb46e257..cf067981 100644 --- a/Assets/LYM/UIPrefabs/MainUIPanel.prefab +++ b/Assets/LYM/UIPrefabs/MainUIPanel.prefab @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3d951d2756a976bfa7d109f17af909e819878aa660d08693d7c17f1487cc97d1 -size 22787 +oid sha256:09f6c3d59bfd8748b6dd2fbf85f729393f83b351de2c27b54e1b91084fb3b4a6 +size 22996 diff --git a/Assets/LYM/UIPrefabs/PopupPanel.prefab b/Assets/LYM/UIPrefabs/PopupPanel.prefab index 7d12a91b..73eb6287 100644 --- a/Assets/LYM/UIPrefabs/PopupPanel.prefab +++ b/Assets/LYM/UIPrefabs/PopupPanel.prefab @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4a7c303f7b26626ff10a444da5807c0b78c8f067179c3bf164f7e6cf61f14e61 -size 27163 +oid sha256:61ab3f3c5fa44444bd2532669136a111646c3614ab41dac79a973dd26972a610 +size 27207 diff --git a/Assets/LYM/UIPrefabs/SettingsPanel.prefab b/Assets/LYM/UIPrefabs/SettingsPanel.prefab new file mode 100644 index 00000000..fd196c82 --- /dev/null +++ b/Assets/LYM/UIPrefabs/SettingsPanel.prefab @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ac3919c3209cdb5cbc6468e1efb93b32d0fdf7fd6530338075386d5af1eaba47 +size 64642 diff --git a/Assets/LYM/UIPrefabs/SettingsPanel.prefab.meta b/Assets/LYM/UIPrefabs/SettingsPanel.prefab.meta new file mode 100644 index 00000000..e7ba4c7d --- /dev/null +++ b/Assets/LYM/UIPrefabs/SettingsPanel.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9fe584d3180d4924e97a2084be3b454e +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: