강의

멘토링

커뮤니티

Inflearn Community Q&A

songhajun6485378's profile image
songhajun6485378

asked

Unity System Programming Pt.1 - All-in-one package of core systems for commercial game implementation

InventoryUI가 특정 상황에서 ESC로 나가지지 않는 현상

Resolved

Written on

·

302

0

수강생들이 혹시나 동일한 경험할까봐 남겨둡니다.


재현방법

  • 실행

  • Lobby에서 InventoryUI 오픈

  • InventoryUI에서 EquipmentUI 오픈

  • ESC 입력하여 EquipmentUI 닫기

     

  • ESC 입력

     

재현결과

  • InventoryUI 위에 게임을 종료하시겠습니까 ConfirmUI 오픈

기대결과

  • InventoryUI 닫기

     

재현버전(강의)

진행 이후 수정되었을 수도 있어서 적어만 둡니다.

  • 아이템 장착 Pt.4


사유

이전에 GoodsUI를 추가 하면서 OpenUI() 중 여는 ui의 siblingIndex를 childCount - 1로 수정하였습니다.

하지만 CloseUI() 할 때 그 다음 lastChild를 childCount -2로 조회하는 것으로 수정하지 않았습니다.

 

이 결과,

해당 재현 상황에서 UIManager의 CloseUI() 중 lastChild로 InventoryUI가 들어와야 하는데 GoodsUI로 들어오게 됩니다. GoodsUI는 BaseUI를 상속하지 않으므로 GetComponent<BaseUI> 후 설정되는 m_FrontUI가 null이 됩니다.

 

이후 ESC를 누르면 m_FrontUI가 null이므로 InventoryUI가 있음에도 게임 종료 ConfirmUI가 노출됩니다.

 

간이 해결

CloseUI시 frontUI에 GoodsUI가 아닌 그 다음 UI가 제대로 들어가게 하기.

UIManager.cs CloseUI() 수정하기

var lastChild = UICanvasTrs.GetChild(UICanvasTrs.childCount - 2);
C#unity객체지향

Answer 3

0

burningcarrot님의 프로필 이미지
burningcarrot
Instructor

안녕하세요! BurningCarrot입니다.

내용 공유해 주셔서 감사합니다. 이번 주에 강의 보완 및 자료 재업로드 하도록 하겠습니다.

0

오 그러네요!

도움이 많이 되었습니다. 감사합니다.

0

ACACIA님의 프로필 이미지
ACACIA
Questioner

InGame 강의 부터는 FadeImg도 있기 때문에 -3가 필요합니다.

songhajun6485378's profile image
songhajun6485378

asked

Ask a question