인프런 커뮤니티 질문&답변

이영호님의 프로필 이미지
이영호

작성한 질문수

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진

UI Manager #2

_order 변수 값 질문드립니다.

작성

·

219

2

안녕하세요 매번 좋은 강의를 진행주셔셔 감사합니다. 

강의중에 궁금한 사항이 잇어 질문드리게 되었는데요 

Manager로 부터 매번 UIManager를 초기화 하여 가져오는데 어떻게 _order 값이 초기화 되지 않고 값이 증가되는 이유를 알수 있을까요? ㅜㅜ 

답변 4

1

Rookiss님의 프로필 이미지
Rookiss
지식공유자

Managers의 Instance가 static이고,
UIManager는 그 static한 Managers의 멤버 변수이기 때문에
사실상 UIManager도 static인 것과 마찬가지입니다.

여러 UI_Button들이 Managers.UI를 통해 접근하면
실제로 동일한 UIManager를 사용하고 있는 것이죠.

1

Rookiss님의 프로필 이미지
Rookiss
지식공유자

매번 UIManager를 초기화 해서 가져온다고 생각하신 이유가 있을까요?
혹시 Managers 코드에서 Init(); 이 들어가 있어서 그렇게 오해하신거라면,
해당 코드는 s_instance가 안 만들어졌을 때 딱 1번만 만들어주기 때문에
UIManager 또한 1번만 만들어지게 됩니다.

0

이영호님의 프로필 이미지
이영호
질문자

답변 감사합니다. ^^ 

0

이영호님의 프로필 이미지
이영호
질문자

답변 주셔셔 감사합니다. 

제가 혼동되는 사항이 Sample Scene에서 UI_Button이 반복적으로 생성될떄 각각이  Managers 코드에서 해당 함수를 받을시 어떻게 서로간 변수(_order)가 공유 가능한지 알 수 있을까요 ? 

특히 _order의 경우 static 변수가 아닌데 서로 다른 오브젝트 내에서 함수(Set Canvas)를 호출해서 _order값을 증가 시켰음에도 해당 변수값이 유지 되는지 이해가 잘 안되는데 설명 가능할까요 ? ㅜ

이영호님의 프로필 이미지
이영호

작성한 질문수

질문하기