본문 바로가기
내일배움캠프 Unity/본 캠프

[내일배움캠프][TIL] 20일차, 개인 과제 진행 (2025-10-27)

by 승연 2025. 10. 27.

목표

필수 기능 구현 마무리

 

학습 내용

트러블 슈팅

문제:

미니 게임(Flappy Bird) 진입 시 Start Panel이 나타나지 않고 곧장 게임이 진행되며, 아무런 입력이 먹히지 않는 현상 발생

 

원인:

미니 게임의 UI 매니저 스크립트에 있는 Start()에서 if(StartPanel != null) startPanenl.SetActive(false); 로 비활성화하고 있으며, 미니 게임 매니저 스크립트에 있는 Start() 에서는 미니 게임 UI 매니저 안에 있는 ShowStratPanel() 메소드를 호출하며 스타트 판넬을 활성화하고 있다.

 

 

해결 방법:

두 스크립트의 중 미니 게임 매니저의 실행 순서가 우선이면 문제가 없을 수도 있으나, 근본적인 이유는 아닐 수 있다.

1. 유니티의 Script Execution Order 설정에서 MiniGameManager 의 실행 순서를 MiniGameUIManager 보다 나중으로 설정해라.
2. MiniGameUIManager의 if(StartPanel != null) startPanenl.SetActive(false); 를 삭제해라

 

적용한 방법:

2번의 방법으로 if(StartPanel != null) startPanenl.SetActive(false); 코드를 삭제하니 정상적으로 작동이 되었다. 

회고

미니 게임 씬으로 진입 했을 때 모든 패널이 비활성화 된 상태로 초기화 해놓고, 미니 게임 매니저에서 게임이 시작하면 스타트 패널을 활성화하는 흐름을 생각했으나 두 스크립트 간의 실행 순서가 달랐기에 일어난 문제였던 것 같다. 유니티에서는 스크립트 간의 실행 순서가 다르며 그것도 생각하고 기능을 작성해야 한다는 것을 처음 알게 되었다.

 

이번엔 문제가 되었던 코드를 없애는 것으로 해결했지만, 다음엔 코드 간의 실행 순서도 생각해서 구조를 짜봐야겠다.