Manager의 Start() 메서드 관련 질문입니다.
367
작성한 질문수 5
GameScene.cs 에서
Managers.UI.ShowPopupUI<UI_TitlePopup>();위의 Manager 클래스의 프로퍼티 UI 를 반환받는 과정에서 이미 Manager 클래스의 Init() 메서드를 호출하는 것으로 확인했습니다.
그럼에도 불구하고 Manager 클래스의 Start() 메서드에서 Init()을 또 호출하는 특별한 이유가 있나요?
Start() 에서 Init()을 호출하는 시점의 s_instance 멤버 변수 null 체크를 해보니 이미 최상단에 말씀드린 과정에서 Manager가 생성되어 전부 null이 아니라고 로그가 찍힙니다.
(사실상 Start()를 지워도 문제 없이 Manager 오브젝트는 생성됨)
물론 다른 Manager들도 위의 과정에서 new 키워드로 전부 생성 되었고요.
그렇다면 Start() 메서드에서 Init()을 호출하는 것은 사실상 불필요한 호출이고, 정말 만약에라도 Manager의 Start() 가 실행되기 전까지 s_instance 가 null 일 경우가 생길 수 없는 것 같아서요.
제가 못 본 다른 이유가 있는 걸까요?
답변 1
0
원래 Manager Start에서 Init을 통해서 초기화를 하다가,
다른 곳에서 Managers Start 가 발생하기 전에 매니저를 사용할 경우 (ex. Managers.UI.ShowPopup)
NULL 크래시가 나기 때문에 언제 어디서라도 편하게 사용할 수 있게
Init() 하는 부분이 매니저의 프로퍼티에 추가 되었습니다.
그러니 뭐 사실 Start의 Init은 불필요한 부분이긴 하지만
또 어떻게 바뀔지 모르니 그냥 일단 남겨뒀습니다.
이런 부분은 딱히 중요한 부분이 아니라 원하시는 대로 수정하셔도 무방합니다.
dotween pro와 dotween
0
106
2
SceneType 질문
0
60
2
소스코드 문의
0
80
1
유니티6 6000.0.0.35f1 버전을 사용하는데 잘 됩니다~
0
364
1
코드 분석하면서 강의 복습중인데 질문 있습니다!
0
228
1
이전에 프레임웍을 만들때라는 말씀
0
221
1
Missing (Mono Script)
0
417
1
그냥 씬 자체가 실행이 안됩니다..
0
652
2
어떡하죠?
0
695
2
unity 다운 시간
0
283
0
바인드가 안돼요
0
324
1
Update문을 호출하기전에 왜 호출하는게 자기자신인지 확인하나요?
0
201
1
안녕하세요! 시작...부터 조금 막혔어요..ㅠㅠ 도와주세요
0
4741
2
버튼 조작을 해주는 스크립트 위치
0
300
1
RefreshUI(); 기능이 궁금합니다.
0
297
1
Action Invoke할때 ?는 뭔가요?
1
427
1
데이터 읽기 쓰기에 관련해서 질문 있습니다.
0
385
1
Scene탭에 Auto Save 어떻게 활성화시키나요?
0
1362
1
루키스님 바쁘시겠지만 혹시 한 번만 봐주실 수 있나요?
0
442
1
함수호출 순서관련해서 질문있습니다.
0
429
1
DataManager 관련 질문
0
464
2
갑자기 바인드가 되지 않습니다.ㅠㅠ
0
380
1
저작권 관련 질문이 있습니다.
1
525
1
Visual studio 스타일
0
442
1





