inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

인벤토리 실습 #2

프레임에 대한 질문

168

이성현

작성한 질문수 16

0

실행되는 순서를 따라가다 보니 햇갈리는 부분이 있어 질문드립니다.

UI_Inven 클래스에서 Init()함수부분을 보시면 UI_Inven_Item의 frefab을 생성하고 UI_Inven_Item클래스를 붙여준 후 SetInfo()를 하는 부분이 있는데

저는 처음에 UI_Inven_Item 인스턴스가 되면 Start()가 실행되어 SetInfo()가 씹히고 실행되는 줄 알았는데 도큐먼트를 살펴보니 Start는 첫 번째 프레임이 업데이트 직전에 실행된다고 적혀있어서 위 내용이 한프레임 안으로 일어나서 정상적으로 실행 되구나라고 생각 하려고했는데 혹시나 몰라서 Debug를 찍어보니 UI_Inven의 for문이 모두 돌아서 나온후 UI_Inven_Item의 start가 차례되로 실행 되더라고요. 

그럼.. 한 프레임은 UI_Inven 클래스에서 Init()이 모두 완료되었을 때가 한 프레임 인가요?

저는 프레임이 세미콜론이 끝나는 부분이 프레임이 넘어가는 걸로 생각 하고있어서 저의 생각이 틀린것 같아 바로 잡고싶네요

이번 경험으로 유니티 실행순서에 관해 공부해보게 됬네요

C# unity

답변 1

0

Rookiss

인스턴스를 만들자마자 Start()가 바로 호출되진 않습니다.
따라서 Init()은 프레임 관리와는 별개라고 생각하셔야 합니다.
(그게 아니라면 Start에서 Init()을 호출하거나..)

프레임의 정확한 개념은, 모든 게임 엔진이 중앙에서
무한 MainLoop Update를 하고 있는데
그것을 한바퀴 돌면 단순히 1프레임이라고 합니다.
정확한 구현은 유니티 엔진을 뜯어봐야겠지만
대략적으로 1프레임을 다 돈 다음에 그 사이에 생성된 애들을 Start 해준 다음,
또 업데이트를 하고 이런 식으로 반복될 것으로 예상할 수 있습니다.
그런데 Init()은 생성 시점에서 호출된 것이라, 프레임 관리 자체와는 무관합니다.

0

이성현

아하 프레임이 그런 것 이었군요 이해 했습니다 감사합니다

저 생각되로 구현 되는것은 Awake() 함수를 사용시에 그렇게 되더라고요!

ResourceManager 클래스 관련 질문

1

31

2

몬스터 HP 게이지바 이동

0

22

1

매니저 관련 질문이 있습니다.

0

71

2

비쥬얼 스튜디오에서 unity연결이 없습니다.

0

76

2

UI 기능 관련 질문이 있습니다!

0

72

2

픽셀 좌표 스크린 좌표

0

52

0

전체적으로 코드 읽는게 굉장히 오래 걸리네요...

0

107

2

카메라 #2 수업 캐릭터 쓰러짐 해결

0

97

1

플레이어 움직임이 끝날때, 기울어짐 현상

0

101

1

Input 적용과 관련하여 질문 있습니다.

0

91

1

디버그 불가.. Unity에 연결 불가

0

99

1

달리기 애니메이션 에러

0

98

2

오랜만에 게임을 만들다가 사운드 관련해서 뭔가 궁금한게 있어서 봤습니다

0

75

1

GetKey 오류

0

128

2

에셋을 어디에 올려두신지 알 수 있나요?

0

114

1

재귀호출? 오류나는데 왜 이래요 ?

0

179

6

Animation blending 파라미터 계산

0

75

1

newPos와 to지점이 겹쳐져야 하는거 아닌가요?

0

113

3

오브젝트 복제하니까 자꾸 이런게 뜨면서 꺼집니다

0

96

2

질문있습니다

0

156

2

아 이거 소스코드 같은거 없나요?

0

152

3

질문 드립니다. string.IsNullOrEmpty(name)

0

94

2

@Managers 가 씬에 배치되어 있어도 문제가 되지 않나요?

0

139

2

유니티6 NavMesh 안되는분들

1

194

1