diff --git a/Assets/01_Scenes/WhaleAdventure_VR/Rooms/CatsRoom.unity b/Assets/01_Scenes/WhaleAdventure_VR/Rooms/CatsRoom.unity index 89052b30..1478773e 100644 --- a/Assets/01_Scenes/WhaleAdventure_VR/Rooms/CatsRoom.unity +++ b/Assets/01_Scenes/WhaleAdventure_VR/Rooms/CatsRoom.unity @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a5bc4f974575b7697b035e1f251b9498e3b66a6c8e0453a4f022b4a6e6f16bc2 -size 2058260 +oid sha256:0e1312c7e11f5ad518a1396a4f9ab2881e23ca018f78fae1b279a12f5e132de2 +size 2064059 diff --git a/Assets/02_Scripts/Managers/CatsRoom/RhythmManager.cs b/Assets/02_Scripts/Managers/CatsRoom/RhythmManager.cs index cab742c9..28ee9aed 100644 --- a/Assets/02_Scripts/Managers/CatsRoom/RhythmManager.cs +++ b/Assets/02_Scripts/Managers/CatsRoom/RhythmManager.cs @@ -21,7 +21,12 @@ public class RhythmManager : MonoBehaviour [Header("오토플레이 (아이템)")] [SerializeField] private bool _autoPlay; // 켜지면 모든 노트를 판정선 도달 순간 자동 Perfect 처리 - [SerializeField] private RhythmStick[] _autoPlaySticks; // 인덱스 = Note.Lane. 오토플레이 시 자동으로 휘두를 스틱들 + [SerializeField] private RhythmStick[] _autoPlaySticks; // 인덱스 = Note.Lane. 오토플레이 시 자동으로 휘두를 "자동 전용" 스틱들 (그랩 X) + + [Header("오토플레이 전환 (수동 ↔ 자동 스틱)")] + [SerializeField] private GameObject[] _autoPlayShowObjects; // 자동 시 켤 것: 자동 전용 스틱(손 모델 포함) + [SerializeField] private GameObject[] _autoPlayHideObjects; // 자동 시 끌 것: 그랩 스틱·실제 손 등 + [SerializeField] private Collider[] _drumPadColliders; // 자동 시 비활성화할 드럼패드 콜라이더 (자동 타격이 수동 입력 안 끼치게) [SerializeField] private GameObject StartButtonObj; @@ -69,6 +74,8 @@ private void Start() InputManager.Instance.OnKey_Right_Event += OnPlayerInput; _rhythmCats = FindObjectsByType(FindObjectsSortMode.None); + + ApplyAutoPlayState(false); // 기준 상태: 자동 스틱 숨김, 수동 스틱/손·드럼패드 활성 } private void Update() @@ -159,7 +166,28 @@ public void ChangeSong() } // 오토플레이 아이템 사용: 곡 시작 전(또는 도중)에 호출하면 남은 노트가 전부 자동 Perfect - public void EnableAutoPlay() => _autoPlay = true; + public void EnableAutoPlay() + { + _autoPlay = true; + ApplyAutoPlayState(true); // 자동 스틱 켜고, 수동 스틱·손·드럼패드 콜라이더 끔 + } + + // 오토플레이 비주얼/충돌 전환. + // on=true → 자동 전용 스틱 표시 + 수동 스틱/손 숨김 + 드럼패드 콜라이더 비활성 + private void ApplyAutoPlayState(bool on) + { + if (_autoPlayShowObjects != null) + foreach (GameObject go in _autoPlayShowObjects) + if (go != null) go.SetActive(on); + + if (_autoPlayHideObjects != null) + foreach (GameObject go in _autoPlayHideObjects) + if (go != null) go.SetActive(!on); + + if (_drumPadColliders != null) + foreach (Collider col in _drumPadColliders) + if (col != null) col.enabled = !on; + } // 시작 버튼 핸들러: 곧장 시작하지 않고 VR 준비 시간(카운트다운) 후 BeginSong 호출 public void StartSong() @@ -245,9 +273,14 @@ public void StopSong() _audioSource.Stop(); _isPlaying = false; - if (_autoPlay && _autoPlaySticks != null) // 곡 끝나면 들려있던 스틱 대기 자세로 복귀 - foreach (RhythmStick stick in _autoPlaySticks) - if (stick != null) stick.ResetPose(); + if (_autoPlay) + { + if (_autoPlaySticks != null) // 곡 끝나면 들려있던 스틱 대기 자세로 복귀 + foreach (RhythmStick stick in _autoPlaySticks) + if (stick != null) stick.ResetPose(); + + ApplyAutoPlayState(false); // 수동 스틱·손·드럼패드 콜라이더 복구 + } _autoPlay = false; // 아이템 효과는 한 곡만 — 곡이 끝나면 자동 해제 diff --git a/Assets/04_Models/Objects/WoodStick/Prefabs/WoodStick_L.prefab b/Assets/04_Models/Objects/WoodStick/Prefabs/WoodStick_L.prefab index 18b22351..ca28a676 100644 --- a/Assets/04_Models/Objects/WoodStick/Prefabs/WoodStick_L.prefab +++ b/Assets/04_Models/Objects/WoodStick/Prefabs/WoodStick_L.prefab @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b6e9fe63e00c6356a7d48990856837585eac460bcdc702a6fc049ad6224acf5a +oid sha256:5b9a968fa240cf7d3360a63cafa1f19d3bb4b884ba6d9ccf132de1b209140e29 size 24425 diff --git a/Assets/04_Models/Objects/WoodStick/Prefabs/WoodStick_L_Auto.prefab b/Assets/04_Models/Objects/WoodStick/Prefabs/WoodStick_L_Auto.prefab new file mode 100644 index 00000000..6d11246e --- /dev/null +++ b/Assets/04_Models/Objects/WoodStick/Prefabs/WoodStick_L_Auto.prefab @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c5a63368b63d67b8053ddd629dd89934e7da8ecb49b2a82a49c113192bb24b95 +size 47019 diff --git a/Assets/04_Models/Objects/WoodStick/Prefabs/WoodStick_L_Auto.prefab.meta b/Assets/04_Models/Objects/WoodStick/Prefabs/WoodStick_L_Auto.prefab.meta new file mode 100644 index 00000000..c1c30985 --- /dev/null +++ b/Assets/04_Models/Objects/WoodStick/Prefabs/WoodStick_L_Auto.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a5a31f7553931d040929ae493c235d80 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/04_Models/Objects/WoodStick/Prefabs/WoodStick_R.prefab b/Assets/04_Models/Objects/WoodStick/Prefabs/WoodStick_R.prefab index 2e341633..93d5e62e 100644 --- a/Assets/04_Models/Objects/WoodStick/Prefabs/WoodStick_R.prefab +++ b/Assets/04_Models/Objects/WoodStick/Prefabs/WoodStick_R.prefab @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ce8209b6c3a166cede1d08e85499aa5923f6f2216ded2810bdca4f6bcef3db72 +oid sha256:95564c2f97652e177ca049f98e96d3f88b441d9fcc6201307f47ccde65db7a21 size 23802 diff --git a/Assets/04_Models/Objects/WoodStick/Prefabs/WoodStick_R_Auto.prefab b/Assets/04_Models/Objects/WoodStick/Prefabs/WoodStick_R_Auto.prefab new file mode 100644 index 00000000..ce192e2d --- /dev/null +++ b/Assets/04_Models/Objects/WoodStick/Prefabs/WoodStick_R_Auto.prefab @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ab4809389f24351e421b2ab12deb05d30a778a1d6d4547cc9e6f7ba63e65de75 +size 46375 diff --git a/Assets/04_Models/Objects/WoodStick/Prefabs/WoodStick_R_Auto.prefab.meta b/Assets/04_Models/Objects/WoodStick/Prefabs/WoodStick_R_Auto.prefab.meta new file mode 100644 index 00000000..6b527a8e --- /dev/null +++ b/Assets/04_Models/Objects/WoodStick/Prefabs/WoodStick_R_Auto.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ca6f82f80c095564aa50394261deab85 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: