2026-06-13 리듬게임 판정
This commit is contained in:
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
Reference in New Issue
Block a user