diff --git a/Assets/JAY/Scripts/PlayerController.cs b/Assets/JAY/Scripts/PlayerController.cs index cd6c8107..694b5fe4 100644 --- a/Assets/JAY/Scripts/PlayerController.cs +++ b/Assets/JAY/Scripts/PlayerController.cs @@ -93,7 +93,9 @@ public class PlayerController : CharacterBase, IObserver // 공격 입력 처리 if (Input.GetKeyDown(KeyCode.X) && (_currentAction == null || !_currentAction.IsActive) - && (CurrentState != PlayerState.Win && CurrentState != PlayerState.Dead)) { + && (CurrentState != PlayerState.Win && CurrentState != PlayerState.Dead)) + { + GameManager.Instance.PlayPlayerAttackSound(); StartAttackAction(); } @@ -397,6 +399,7 @@ public class PlayerController : CharacterBase, IObserver if (character != this) return; if (CurrentState == PlayerState.Dead) return; + GameManager.Instance.PlayPlayerHitSound(); SetState(PlayerState.Hit); } diff --git a/Assets/JYY/Prefabs/Alien Big Blink.prefab b/Assets/JYY/Prefabs/Alien Big Blink.prefab index 22205469..be137b6b 100644 --- a/Assets/JYY/Prefabs/Alien Big Blink.prefab +++ b/Assets/JYY/Prefabs/Alien Big Blink.prefab @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c73dd92667ec621276bb0eb116b61bfbc770c926a3699f019f6230bdd362787f -size 71442 +oid sha256:83da6d33fb85764ae3dc4117b179be2ffaa26e9a85492b7c25cffbe27e190e80 +size 72053 diff --git a/Assets/KSH/DungeonLogic.cs b/Assets/KSH/DungeonLogic.cs index c0a6074b..1bc28af7 100644 --- a/Assets/KSH/DungeonLogic.cs +++ b/Assets/KSH/DungeonLogic.cs @@ -113,8 +113,9 @@ public class DungeonLogic : MonoBehaviour _player.SetState(PlayerState.Win); // TODO: 강화 시스템으로 넘어가고 일상 맵으로 이동 + GameManager.Instance.PanelManager.GetPanel("ClearPanelBG"); - StartCoroutine(DelayedSceneChange()); // 3초 대기 후 전환 + StartCoroutine(DelayedSceneChange()); // 5초 대기 후 전환 } } @@ -133,13 +134,15 @@ public class DungeonLogic : MonoBehaviour _player.gameObject.layer = LayerMask.NameToLayer("Ignore Raycast"); _enemy.SetState(EnemyState.Idle); - StartCoroutine(DelayedSceneChange()); // 3초 대기 후 전환 + GameManager.Instance.PanelManager.GetPanel("FailedPanelBG"); + + StartCoroutine(DelayedSceneChange()); // 5초 대기 후 전환 } } private IEnumerator DelayedSceneChange() { - yield return new WaitForSeconds(3f); + yield return new WaitForSeconds(5f); GameManager.Instance.ChangeToHomeScene(); } diff --git a/Assets/KSH/ReDungeon.unity b/Assets/KSH/ReDungeon.unity index bc7c6cdb..36b826ee 100644 --- a/Assets/KSH/ReDungeon.unity +++ b/Assets/KSH/ReDungeon.unity @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:87999e4c368640b111c7853a7a5e3890e85c280fb6b1d18bb4035d9f7fdb8527 -size 2416201 +oid sha256:6073557e3f1e9b377c14c5b9a1284a3882642b13f32bfbc22bf38664308853dd +size 2417036 diff --git a/Assets/KSH/ReHousing.unity b/Assets/KSH/ReHousing.unity index c91bf980..cde651e5 100644 --- a/Assets/KSH/ReHousing.unity +++ b/Assets/KSH/ReHousing.unity @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c5dd7c03ffb3881a0ce17876a5533d74aac721313b347a2104d3056fea325e9d -size 607417 +oid sha256:1e9daf08bc580a9cb7b3458cc1aaa4a227710db9eb5fcb2838a14eeff8938a22 +size 608530 diff --git a/Assets/LYM/Scripts/PanelManager.cs b/Assets/LYM/Scripts/PanelManager.cs index ef209214..8b4d1478 100644 --- a/Assets/LYM/Scripts/PanelManager.cs +++ b/Assets/LYM/Scripts/PanelManager.cs @@ -2,20 +2,23 @@ using System; using System.Collections; using System.Collections.Generic; using UnityEngine; +using UnityEngine.SceneManagement; -public class PanelManager : MonoBehaviour +public class PanelManager : Singleton { private Canvas _canvas; private Dictionary _panels = new Dictionary(); - private void Awake() + private void Start() { - if (_canvas == null) - { - _canvas = GameObject.Find("Canvas").GetComponent(); - } + FindCanvas(); LoadPanels(); } + + private void FindCanvas() + { + _canvas = GameObject.Find("Canvas").GetComponent(); + } //패널을 딕셔너리에 오브젝트 이름으로 로드 private void LoadPanels() @@ -27,9 +30,12 @@ public class PanelManager : MonoBehaviour _panels[prefab.name] = prefab; } } + //패널 이름을 딕셔너리 키로 찾음 public GameObject GetPanel(string panelName) { + if(_canvas == null) FindCanvas(); + if (_panels.TryGetValue(panelName, out GameObject prefab)) { return Instantiate(prefab, _canvas.transform); @@ -41,4 +47,5 @@ public class PanelManager : MonoBehaviour return null; } + protected override void OnSceneLoaded(Scene scene, LoadSceneMode mode) { } } diff --git a/Assets/LYM/Scripts/SettingsPanelController.cs b/Assets/LYM/Scripts/SettingsPanelController.cs index 602f5845..f9e551dd 100644 --- a/Assets/LYM/Scripts/SettingsPanelController.cs +++ b/Assets/LYM/Scripts/SettingsPanelController.cs @@ -36,24 +36,38 @@ public class SettingsPanelController : PanelController public void SFXSliderButtonClicked() { sfxSliderButton.OnClicked(); - //todo: sfxSliderButton.IsActive를 기준으로 뮤트 여부 확인 및 뮤트 적용 + ApplySFXSettings(sfxSliderButton.IsActive, sfxSlider.value); } public void BGMSliderButtonClicked() { bgmSliderButton.OnClicked(); - //todo: sfxSliderButton.IsActive를 기준으로 뮤트 여부 확인 및 뮤트 적용 + ApplyBGMSettings(bgmSliderButton.IsActive, bgmSlider.value); } //슬라이더 변경 시 마다 호출 public void OnSFXSliderValueChanged(float value) { - //todo: 소리 볼륨 조절 + ApplySFXSettings(sfxSliderButton.IsActive, value); } public void OnBGMSliderValueChanged(float value) { - //todo: 소리 볼륨 조절 + ApplyBGMSettings(bgmSliderButton.IsActive, value); + } + + // 효과음 설정 적용 메서드 + private void ApplySFXSettings(bool isActive, float volume) + { + float actualVolume = isActive ? volume : 0f; + SoundManager.Instance.SetSFXVolume(actualVolume); + } + + // 배경음 설정 적용 메서드 + private void ApplyBGMSettings(bool isActive, float volume) + { + float actualVolume = isActive ? volume : 0f; + SoundManager.Instance.SetBGMVolume(actualVolume); } public void OnCloseButtonClicked() diff --git a/Assets/PIH/Assets.meta b/Assets/PIH/Assets.meta deleted file mode 100644 index 906b8c3b..00000000 --- a/Assets/PIH/Assets.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 103d1c060596bdd4bbe4361b2d571cdd -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/PIH/Assets/RpgBgmDungeon.meta b/Assets/PIH/Assets/RpgBgmDungeon.meta deleted file mode 100644 index 07a2c7d2..00000000 --- a/Assets/PIH/Assets/RpgBgmDungeon.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 14ced887e59fe2247ad5ac97a92b7003 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/PIH/Assets/RpgBgmDungeon/RPG_Dungeon.wav b/Assets/PIH/Assets/RpgBgmDungeon/RPG_Dungeon.wav deleted file mode 100644 index bd9046d4..00000000 --- a/Assets/PIH/Assets/RpgBgmDungeon/RPG_Dungeon.wav +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:934f1dc1b307103993d18b23f592b5455ca5ffff715304b0317caf8b00f30af9 -size 8130484 diff --git a/Assets/PIH/Assets/RpgBgmDungeon/RPG_Dungeon.wav.meta b/Assets/PIH/Assets/RpgBgmDungeon/RPG_Dungeon.wav.meta deleted file mode 100644 index ccce3f9e..00000000 --- a/Assets/PIH/Assets/RpgBgmDungeon/RPG_Dungeon.wav.meta +++ /dev/null @@ -1,24 +0,0 @@ -fileFormatVersion: 2 -guid: 6278383b82513424bb58a3faeeb8a9db -timeCreated: 1545638758 -licenseType: Store -AudioImporter: - externalObjects: {} - serializedVersion: 6 - defaultSettings: - loadType: 0 - sampleRateSetting: 0 - sampleRateOverride: 44100 - compressionFormat: 1 - quality: 1 - conversionMode: 0 - platformSettingOverrides: {} - forceToMono: 0 - normalize: 1 - preloadAudioData: 1 - loadInBackground: 0 - ambisonic: 0 - 3D: 1 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/Common/GameManager.cs b/Assets/Scripts/Common/GameManager.cs index c784f463..a02bb9d3 100644 --- a/Assets/Scripts/Common/GameManager.cs +++ b/Assets/Scripts/Common/GameManager.cs @@ -6,8 +6,6 @@ using UnityEngine.SceneManagement; public partial class GameManager : Singleton { - private Canvas _canvas; - // 게임 진행 상태 private int currentDay = 1; // 날짜 public int CurrentDay => currentDay; diff --git a/Assets/Scripts/Common/GameUtility/GameSound.cs b/Assets/Scripts/Common/GameUtility/GameSound.cs index c4e17d38..13159b5d 100644 --- a/Assets/Scripts/Common/GameUtility/GameSound.cs +++ b/Assets/Scripts/Common/GameUtility/GameSound.cs @@ -32,7 +32,7 @@ public partial class GameManager [SerializeField] private AudioClip victorySFX; [Header("플레이어 전투 효과음")] - [SerializeField] private AudioClip housingFootstepSFX; + [SerializeField] private AudioClip playerHitSFX; [SerializeField] private AudioClip dungeonFootstepSFX; [SerializeField] private AudioClip playerAttackSFX; @@ -85,7 +85,7 @@ public partial class GameManager if (sleepingSFX != null) SafeSoundManager?.LoadAudioClip("Sleeping", sleepingSFX); // 플레이어 전투 효과음 등록 - if (housingFootstepSFX != null) SafeSoundManager?.LoadAudioClip("HousingFootstep", housingFootstepSFX); + if (playerHitSFX != null) SafeSoundManager?.LoadAudioClip("PlayerHit", playerHitSFX); if (dungeonFootstepSFX != null) SafeSoundManager?.LoadAudioClip("DungeonFootstep", dungeonFootstepSFX); if (playerAttackSFX != null) SafeSoundManager?.LoadAudioClip("PlayerAttack", playerAttackSFX); @@ -173,6 +173,7 @@ public partial class GameManager { SafeSoundManager?.PlayBGM(bgmClip, true, 1.5f); currentBGMTrack = targetScene; + wasPlayingBGM = true; } } } @@ -223,6 +224,12 @@ public partial class GameManager public void PlayInteractionSound(ActionType actionType) { + if (sceneBGMMap.TryGetValue(currentBGMTrack, out AudioClip bgmClip)) + { + previousBGMClip = bgmClip; + wasPlayingBGM = true; + } + // 배경음 중지 (페이드아웃) SafeSoundManager?.StopBGM(true, 0.5f); @@ -301,9 +308,9 @@ public partial class GameManager #region 플레이어 전투 효과음 제어 - public void PlayHousingFootstepSound() + public void PlayPlayerHitSound() { - SafeSoundManager?.PlaySFX("HousingFootstep"); + SafeSoundManager?.PlaySFX("PlayerHit"); } public void PlayDungeonFootstepSound()