2026-06-13 리듬게임 판정

This commit is contained in:
skrwns304@gmail.com
2026-06-13 00:16:11 +09:00
parent b0aede20f2
commit e8086180a0
4 changed files with 39 additions and 39 deletions

View File

@@ -2,14 +2,14 @@
public class RoomMoveButton : MonoBehaviour public class RoomMoveButton : MonoBehaviour
{ {
[Header("이 버튼을 눌렀을 때 이동할 방 번호 입력")] [Header("이 버튼을 눌렀을 때 이동할 방 번호 입력")]
[SerializeField] private int targetRoomNumber; [SerializeField] private int targetRoomNumber;
public void OnClickMoveRoom() public void OnClickMoveRoom()
{ {
if (RoomRouteManager.Instance == null) if (RoomRouteManager.Instance == null)
{ {
Debug.LogError("RoomRouteManager가 없습니다."); Debug.LogError("RoomRouteManager가 없습니다.");
return; return;
} }

View File

@@ -19,50 +19,50 @@ private void Update()
return; return;
} }
// C키: 방문 안 한 방 중 랜덤 후보 뽑기 // C키: 방문 안 한 방 중 랜덤 후보 뽑기
if (Keyboard.current.cKey.wasPressedThisFrame) if (Keyboard.current.cKey.wasPressedThisFrame)
{ {
currentChoices = RoomRouteManager.Instance.GetRandomNextRooms(); currentChoices = RoomRouteManager.Instance.GetRandomNextRooms();
Debug.Log($"현재 선택 가능한 후보 개수: {currentChoices.Count}"); Debug.Log($"현재 선택 가능한 후보 개수: {currentChoices.Count}");
for (int i = 0; i < currentChoices.Count; i++) for (int i = 0; i < currentChoices.Count; i++)
{ {
Debug.Log($"{i + 1}번 선택지 → 방 번호: {currentChoices[i].roomNumber}, 씬 이름: {currentChoices[i].sceneName}"); Debug.Log($"{i + 1}번 선택지 → 방 번호: {currentChoices[i].roomNumber}, 씬 이름: {currentChoices[i].sceneName}");
} }
} }
// 1키: 첫 번째 후보 선택 // 1키: 첫 번째 후보 선택
if (Keyboard.current.digit1Key.wasPressedThisFrame) if (Keyboard.current.digit1Key.wasPressedThisFrame)
{ {
MoveToChoice(0); MoveToChoice(0);
} }
// 2키: 두 번째 후보 선택 // 2키: 두 번째 후보 선택
if (Keyboard.current.digit2Key.wasPressedThisFrame) if (Keyboard.current.digit2Key.wasPressedThisFrame)
{ {
MoveToChoice(1); MoveToChoice(1);
} }
// T키: 방문 상태 확인 // T키: 방문 상태 확인
if (Keyboard.current.tKey.wasPressedThisFrame) if (Keyboard.current.tKey.wasPressedThisFrame)
{ {
Debug.Log($"방문한 방 개수: {RoomRouteManager.Instance.VisitedRoomCount} / {RoomRouteManager.Instance.TotalRoomCount}"); Debug.Log($"방문한 방 개수: {RoomRouteManager.Instance.VisitedRoomCount} / {RoomRouteManager.Instance.TotalRoomCount}");
Debug.Log($"현재 방 번호: {RoomRouteManager.Instance.CurrentRoomNumber}"); Debug.Log($"현재 방 번호: {RoomRouteManager.Instance.CurrentRoomNumber}");
} }
// X키: 테스트용 방문 기록 초기화 // X키: 테스트용 방문 기록 초기화
if (Keyboard.current.xKey.wasPressedThisFrame) if (Keyboard.current.xKey.wasPressedThisFrame)
{ {
Debug.Log("방문 기록 초기화"); Debug.Log("방문 기록 초기화");
currentChoices.Clear(); currentChoices.Clear();
RoomRouteManager.Instance.ResetVisitedRooms(); RoomRouteManager.Instance.ResetVisitedRooms();
} }
// F키: 모든 방 방문 후 마지막 씬 이동 테스트 // F키: 모든 방 방문 후 마지막 씬 이동 테스트
if (Keyboard.current.fKey.wasPressedThisFrame) if (Keyboard.current.fKey.wasPressedThisFrame)
{ {
Debug.Log("마지막 씬 이동 테스트"); Debug.Log("마지막 씬 이동 테스트");
RoomRouteManager.Instance.MoveToFinalScene(); RoomRouteManager.Instance.MoveToFinalScene();
} }
} }
@@ -71,19 +71,19 @@ private void MoveToChoice(int index)
{ {
if (currentChoices == null || currentChoices.Count == 0) if (currentChoices == null || currentChoices.Count == 0)
{ {
Debug.LogWarning("먼저 C키를 눌러 랜덤 후보를 뽑아야 합니다."); Debug.LogWarning("먼저 C키를 눌러 랜덤 후보를 뽑아야 합니다.");
return; return;
} }
if (index < 0 || index >= currentChoices.Count) if (index < 0 || index >= currentChoices.Count)
{ {
Debug.LogWarning("해당 번호의 선택지가 없습니다."); Debug.LogWarning("해당 번호의 선택지가 없습니다.");
return; return;
} }
int targetRoomNumber = currentChoices[index].roomNumber; int targetRoomNumber = currentChoices[index].roomNumber;
Debug.Log($"{index + 1}번 선택지 선택 → 방 {targetRoomNumber} 이동"); Debug.Log($"{index + 1}번 선택지 선택 → 방 {targetRoomNumber} 이동");
currentChoices.Clear(); currentChoices.Clear();

View File

@@ -8,23 +8,23 @@ public class RoomRouteManager : MonoBehaviour
[System.Serializable] [System.Serializable]
public class RoomData public class RoomData
{ {
[Header("방 번호 입력")] [Header("방 번호 입력")]
public int roomNumber; public int roomNumber;
[Header("이 방에 해당하는 Scene 이름 입력")] [Header("이 방에 해당하는 Scene 이름 입력")]
public string sceneName; public string sceneName;
} }
[Header("전체 방 정보 입력")] [Header("전체 방 정보 입력")]
[SerializeField] private List<RoomData> rooms = new List<RoomData>(); [SerializeField] private List<RoomData> rooms = new List<RoomData>();
[Header("시작 방 번호 입력")] [Header("시작 방 번호 입력")]
[SerializeField] private int startRoomNumber; [SerializeField] private int startRoomNumber;
[Header("랜덤 선택지 개수")] [Header("랜덤 선택지 개수")]
[SerializeField] private int randomChoiceCount = 2; [SerializeField] private int randomChoiceCount = 2;
[Header("모든 방 방문 후 이동할 마지막 Scene 이름")] [Header("모든 방 방문 후 이동할 마지막 Scene 이름")]
[SerializeField] private string finalSceneName; [SerializeField] private string finalSceneName;
private int _currentRoomNumber; private int _currentRoomNumber;
@@ -54,7 +54,7 @@ private void Awake()
} }
} }
// 방문하지 않은 방 전체 반환 // 방문하지 않은 방 전체 반환
public List<RoomData> GetUnvisitedRooms() public List<RoomData> GetUnvisitedRooms()
{ {
List<RoomData> result = new List<RoomData>(); List<RoomData> result = new List<RoomData>();
@@ -70,7 +70,7 @@ public List<RoomData> GetUnvisitedRooms()
return result; return result;
} }
// 대화 선택지에 보여줄 랜덤 방 목록 반환 // 대화 선택지에 보여줄 랜덤 방 목록 반환
public List<RoomData> GetRandomNextRooms() public List<RoomData> GetRandomNextRooms()
{ {
List<RoomData> unvisitedRooms = GetUnvisitedRooms(); List<RoomData> unvisitedRooms = GetUnvisitedRooms();
@@ -89,18 +89,18 @@ public List<RoomData> GetRandomNextRooms()
return randomRooms; return randomRooms;
} }
// 버튼이나 대화 선택지에서 호출 // 버튼이나 대화 선택지에서 호출
public void MoveToRoom(int roomNumber) public void MoveToRoom(int roomNumber)
{ {
if (SceneLoadManager.Instance == null) if (SceneLoadManager.Instance == null)
{ {
Debug.LogError("SceneLoadManager가 씬에 없습니다."); Debug.LogError("SceneLoadManager가 씬에 없습니다.");
return; return;
} }
if (SceneLoadManager.Instance.IsChangingScene) if (SceneLoadManager.Instance.IsChangingScene)
{ {
Debug.Log("이미 씬 이동 중입니다."); Debug.Log("이미 씬 이동 중입니다.");
return; return;
} }
@@ -108,19 +108,19 @@ public void MoveToRoom(int roomNumber)
if (targetRoom == null) if (targetRoom == null)
{ {
Debug.LogWarning($"방 정보를 찾을 수 없습니다. 방 번호: {roomNumber}"); Debug.LogWarning($"방 정보를 찾을 수 없습니다. 방 번호: {roomNumber}");
return; return;
} }
if (_visitedRooms.Contains(roomNumber)) if (_visitedRooms.Contains(roomNumber))
{ {
Debug.Log($"이미 방문한 방입니다. 방 번호: {roomNumber}"); Debug.Log($"이미 방문한 방입니다. 방 번호: {roomNumber}");
return; return;
} }
if (string.IsNullOrEmpty(targetRoom.sceneName)) if (string.IsNullOrEmpty(targetRoom.sceneName))
{ {
Debug.LogWarning($"방 {roomNumber}의 Scene 이름이 비어있습니다."); Debug.LogWarning($"방 {roomNumber}의 Scene 이름이 비어있습니다.");
return; return;
} }
@@ -130,14 +130,14 @@ public void MoveToRoom(int roomNumber)
SceneLoadManager.Instance.RequestSceneChange(targetRoom.sceneName); SceneLoadManager.Instance.RequestSceneChange(targetRoom.sceneName);
} }
// 랜덤 방 하나로 바로 이동하고 싶을 때 사용 // 랜덤 방 하나로 바로 이동하고 싶을 때 사용
public void MoveToRandomRoom() public void MoveToRandomRoom()
{ {
List<RoomData> unvisitedRooms = GetUnvisitedRooms(); List<RoomData> unvisitedRooms = GetUnvisitedRooms();
if (unvisitedRooms.Count <= 0) if (unvisitedRooms.Count <= 0)
{ {
Debug.Log("방문하지 않은 방이 없습니다."); Debug.Log("방문하지 않은 방이 없습니다.");
if (IsAllRoomsVisited()) if (IsAllRoomsVisited())
{ {
@@ -162,25 +162,25 @@ public void MoveToFinalScene()
{ {
if (!IsAllRoomsVisited()) if (!IsAllRoomsVisited())
{ {
Debug.Log("아직 모든 방을 방문하지 않았습니다."); Debug.Log("아직 모든 방을 방문하지 않았습니다.");
return; return;
} }
if (SceneLoadManager.Instance == null) if (SceneLoadManager.Instance == null)
{ {
Debug.LogError("SceneLoadManager가 씬에 없습니다."); Debug.LogError("SceneLoadManager가 씬에 없습니다.");
return; return;
} }
if (SceneLoadManager.Instance.IsChangingScene) if (SceneLoadManager.Instance.IsChangingScene)
{ {
Debug.Log("이미 씬 이동 중입니다."); Debug.Log("이미 씬 이동 중입니다.");
return; return;
} }
if (string.IsNullOrEmpty(finalSceneName)) if (string.IsNullOrEmpty(finalSceneName))
{ {
Debug.LogWarning("마지막 Scene 이름이 비어있습니다."); Debug.LogWarning("마지막 Scene 이름이 비어있습니다.");
return; return;
} }