유니티 벽돌깨기 게임 개발 일지
진행 내용 요약:
오늘은 게임의 핵심 기능 개선 및 버그 수정에 집중했습니다.
-
패들 이동 및 공 중력 구현:
-
패들이 화면 경계를 벗어나지 않도록
PaddleController.cs스크립트를 수정하여Mathf.Clamp를 이용한 X축 이동 제한을 구현했습니다. -
공에 미세한 중력을 추가하기 위해
Ball프리팹의Rigidbody 2D컴포넌트에서Gravity Scale값을 조절했습니다.
-
-
다단계 스테이지 관리:
-
총 5개의 스테이지(
GameScene_Level1~GameScene_Level5)가 원활하게 작동하도록Build Settings에 모든 씬을 추가하고 순서를 확인했습니다. -
각 게임 씬의
GameManager오브젝트에 해당 씬의Paddle오브젝트,ScoreText,LivesTextUI가 올바르게 연결되었는지 점검 및 수정했습니다.
-
-
현재 레벨 표시 기능 추가:
-
플레이어가 현재 스테이지를 알 수 있도록 각
GameScene_LevelX씬에LevelTextUI 오브젝트를 추가했습니다. -
GameManager.cs에levelText변수를 추가하고UpdateUI()함수를 수정하여 현재currentLevel값을 UI에 표시하도록 구현했습니다.
-
-
게임 종료 후 재시작 로직 개선:
-
게임 클리어(
WinScene) 및 게임 오버(LoseScene) 후의 버튼이 눌렸을 때, 무조건 1단계(GameScene_Level1)부터 게임이 다시 시작되도록 로직을 통일했습니다. -
이를 위해
WinScene과LoseScene에 있는 재시작 버튼들이GameManager의RestartGame()함수를 호출하도록 연결을 변경했습니다.
-
-
버튼 클릭 문제 디버깅 및 해결:
-
버튼이 클릭되지 않는 문제를 해결하기 위해 여러 디버깅 작업을 수행했습니다.
-
주요 원인이었던
GameManager내 버튼 관련 함수들(StartGame(),RestartGame(),GoToStartScene(),GameOver(),LoadNextLevel(),GameWin())의 접근 지정자를void에서public으로 변경하여 유니티 에디터에서 버튼On Click()이벤트에 함수를 연결할 수 있도록 했습니다. -
각 씬의
GameManager오브젝트에 해당 씬의 버튼 UI 오브젝트가Inspector에서 올바르게 연결되었는지 재확인하고 수정했습니다. -
모든 씬에
EventSystem오브젝트가 존재하고Raycast Target옵션이 활성화되어 있는지 확인하여 UI 이벤트 감지 문제를 해결했습니다.
-
모든 디버깅이 완료되었으며, 이제 게임이 의도한 대로 작동할 것으로 예상됩니다.