강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của songhajun6485378
songhajun6485378

câu hỏi đã được viết

Lập trình hệ thống Unity Pt.1 - Gói all-in-one các hệ thống cốt lõi để phát triển game thương mại

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

Đã giải quyết

Viết

·

306

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객체지향

Câu trả lời 3

0

burningcarrot님의 프로필 이미지
burningcarrot
Người chia sẻ kiến thức

안녕하세요! BurningCarrot입니다.

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

0

오 그러네요!

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

0

ACACIA님의 프로필 이미지
ACACIA
Người đặt câu hỏi

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

Hình ảnh hồ sơ của songhajun6485378
songhajun6485378

câu hỏi đã được viết

Đặt câu hỏi