진행 내용 요약:

오늘은 게임의 핵심 기능 개선 및 버그 수정에 집중했습니다.

  1. 패들 이동 및 공 중력 구현:

    • 패들이 화면 경계를 벗어나지 않도록 PaddleController.cs 스크립트를 수정하여 Mathf.Clamp를 이용한 X축 이동 제한을 구현했습니다.

    • 공에 미세한 중력을 추가하기 위해 Ball 프리팹의 Rigidbody 2D 컴포넌트에서 Gravity Scale 값을 조절했습니다.

  2. 다단계 스테이지 관리:

    • 총 5개의 스테이지(GameScene_Level1 ~ GameScene_Level5)가 원활하게 작동하도록 Build Settings에 모든 씬을 추가하고 순서를 확인했습니다.

    • 각 게임 씬의 GameManager 오브젝트에 해당 씬의 Paddle 오브젝트, ScoreText, LivesText UI가 올바르게 연결되었는지 점검 및 수정했습니다.

  3. 현재 레벨 표시 기능 추가:

    • 플레이어가 현재 스테이지를 알 수 있도록 각 GameScene_LevelX 씬에 LevelText UI 오브젝트를 추가했습니다.

    • GameManager.cslevelText 변수를 추가하고 UpdateUI() 함수를 수정하여 현재 currentLevel 값을 UI에 표시하도록 구현했습니다.

  4. 게임 종료 후 재시작 로직 개선:

    • 게임 클리어(WinScene) 및 게임 오버(LoseScene) 후의 버튼이 눌렸을 때, 무조건 1단계(GameScene_Level1)부터 게임이 다시 시작되도록 로직을 통일했습니다.

    • 이를 위해 WinSceneLoseScene에 있는 재시작 버튼들이 GameManagerRestartGame() 함수를 호출하도록 연결을 변경했습니다.

  5. 버튼 클릭 문제 디버깅 및 해결:

    • 버튼이 클릭되지 않는 문제를 해결하기 위해 여러 디버깅 작업을 수행했습니다.

    • 주요 원인이었던 GameManager 내 버튼 관련 함수들(StartGame(), RestartGame(), GoToStartScene(), GameOver(), LoadNextLevel(), GameWin())의 접근 지정자를 void에서 public으로 변경하여 유니티 에디터에서 버튼 On Click() 이벤트에 함수를 연결할 수 있도록 했습니다.

    • 각 씬의 GameManager 오브젝트에 해당 씬의 버튼 UI 오브젝트가 Inspector에서 올바르게 연결되었는지 재확인하고 수정했습니다.

    • 모든 씬에 EventSystem 오브젝트가 존재하고 Raycast Target 옵션이 활성화되어 있는지 확인하여 UI 이벤트 감지 문제를 해결했습니다.

모든 디버깅이 완료되었으며, 이제 게임이 의도한 대로 작동할 것으로 예상됩니다.