함수호출 순서관련해서 질문있습니다.
[실전 게임 코드 리뷰] 개미회사 소스를 보면서 함수호출 관련해서 궁금점이 생겼습니다.
public class UI_TitlePopup : UI_Popup
{
//생략
void OnClickStartButton()
{
Managers.UI.ShowPopupUI<UI_ConfirmPopup>().SetInfo(() =>
{
Managers.Game.Init();
Managers.Game.SaveGame();
Managers.UI.ClosePopupUI(this); // UI_TitlePopup
Managers.UI.ShowPopupUI<UI_NamePopup>();
}, Managers.GetText(Define.DataResetConfirm));
}
//생략
}
위 코드에서
Managers.UI.ShowPopupUI<UI_ConfirmPopup>().SetInfo(()
이 부분에서 Managers.UI.ShowPopupUI 이 코드는 팝업을 인스턴스화 시켜서 그 인스턴스의 .SetInfo 함수를 호출하는데,
SetInfo 함수를 호출했을 때, 생성된 UI_ConfirmPopup의 Start 함수는 호출이 된 상태일까요?
아니면 객체만 생성되고 Start 함수는 호출되지 않았지만 SetInfo 함수를 호출할 수 있는 상태인 건가요?
디버깅 모드를 보면 Start 함수는 호출이 안됐는데 SetInfo 로 초기화가 되고 있는 것 같습니다.
일반적으로 Object.Instantiate() 와 같은 함수로 객체를 생성하면 생성하자마자 Start 함수가 호출되고 함수 내에 초기화된 프로퍼티를 쓸 수 있는지가 알고 싶습니다.
그 이유는 혼자 게임을 만들다 보면, 위와 비슷하게 어떤 객체 내부에서 자식객체를 생성하고 초기화 해줄 때가 있는데, Start 함수가 호출되어서 프로퍼티가 전부 초기화된 줄 알고 접근하면 null 에러가 뜰 때가 있어서 질문드립니다.
Answer 1
0
아뇨 Awake만 호출된 상태입니다.
맞습니다. 이런 경우 Awake에 넣거나, 객체에 bool _init 값을 두고 그것으로 초기화 안되었으면
알아서 초기화하게 넣어주면 편안해집니다.
dotween pro와 dotween
0
102
2
SceneType 질문
0
57
2
소스코드 문의
0
76
1
유니티6 6000.0.0.35f1 버전을 사용하는데 잘 됩니다~
0
356
1
코드 분석하면서 강의 복습중인데 질문 있습니다!
0
222
1
이전에 프레임웍을 만들때라는 말씀
0
217
1
Missing (Mono Script)
0
407
1
그냥 씬 자체가 실행이 안됩니다..
0
645
2
어떡하죠?
0
688
2
unity 다운 시간
0
279
0
바인드가 안돼요
0
321
1
Update문을 호출하기전에 왜 호출하는게 자기자신인지 확인하나요?
0
198
1
안녕하세요! 시작...부터 조금 막혔어요..ㅠㅠ 도와주세요
0
4710
2
버튼 조작을 해주는 스크립트 위치
0
297
1
RefreshUI(); 기능이 궁금합니다.
0
293
1
Action Invoke할때 ?는 뭔가요?
1
425
1
데이터 읽기 쓰기에 관련해서 질문 있습니다.
0
383
1
Scene탭에 Auto Save 어떻게 활성화시키나요?
0
1356
1
루키스님 바쁘시겠지만 혹시 한 번만 봐주실 수 있나요?
0
440
1
DataManager 관련 질문
0
458
2
갑자기 바인드가 되지 않습니다.ㅠㅠ
0
371
1
저작권 관련 질문이 있습니다.
1
518
1
Visual studio 스타일
0
435
1
Sprite Image vs UI Image
0
912
1

