-
유니티 함수(매서드) 실행 순서유니티(Unity)/유니티 시작하기 2019. 2. 5. 10:50
해당 티스토리 페이지는 필자가 유니티 C# 개발을 하면서 학습한 내용들을 기록하고 공유하는 페이지입니다 !
- 틀린 부분이 있거나, 수정된 부분이 있다면 댓글로 알려주세요 !
- 해당 내용을 공유 or 퍼가도 좋으나, 출처를 꼭 명시해주세요 !
- 해당 글의 모든 저작권은 Chameleon Studio에 있습니다.
- 방문해주셔서 감사합니다 ^^
유니티 함수(매서드) 실행 순서
안녕하세요 ㅎㅎ 카멜레온입니다.
오늘은 유니티 내에 함수들이 어디서 먼저 시작하고, 어디서 끝이 나는지를 알아보겠습니다.
바로 봅시다 !
이미지가 안보이시는 분들은 새로고침 또는 사진을 눌러보세요.
간단하게, 유니티 함수 실행 순서를 설명해보겠습니다.
일단, 시작하면 Editor가 Reset 됩니다.
이 때, 씬 내에 등록되어 있는 모든 스크립트들을 읽어오는 것이죠.
그 다음, Initiailization 부분입니다.
Awake -> OnEnable -> Start 순으로 시작됩니다.
예를 들어서, Awake문에서 리지드바디의 힘을 y값으로 100을 줘서 튀어오르게 했다고 해봅시다.
하지만, Start문에서 Rigidbody의 컴포넌트를 찾는다면, 오류가 나게 됩니다.
함수 실행 순서가 Awake가 먼저고 Start가 나중인데,
Awake문에서 Rigidbody 컴포넌트를 받아오기도 전에 Rigidbody를 사용하려고 했으니 말이죠.
다음은 Physics 부분입니다.
게임의 충돌처리(물리) 관련은 모두 FixedUpdate문에서 처리하는 것이 좋습니다.
프레임이 고정된 시간으로 처리되기 때문이라고 합니다.
예를 들어서, 리지드바디를 사용해서 위, 아래로 통통 튀는 공이 있다고 한다면,
Update문에서 처리하는 것보단, FixedUpdate문에서 처리하는 게 더 낫습니다.
FixedUpdate문 이후로는 트리거 -> 콜리젼입니다.
처음 유니티를 알아갈 때, 충돌 처리에 관해서 학습한 기억이 있는데요.
초보자분들도 익숙하실 거라고 생각합니다.
콜라이더를 만들어서 나와 다른 물체 간 충돌처리를 감지하는 함수가 트리거와 콜리젼입니다.
트리거와 콜리젼은 [유니티 코딩] 카테고리에 따로 정리해두겠습니다.
그 다음으로 물리 관련 처리가 끝났다면 게임 로직관련 처리로 넘어갑니다.
Update -> 코루틴 -> 애니메이션 -> LateUpdate 순입니다.
Update문은 프레임 단위로 이루어지는데요.
초당 60프레임이라고 한다면, 1초에 60번 프레임이 돌아갑니다.
만약, 스크립트에서 Update문을 남용한다고 하면, CPU가 과부화되어 프레임이 밀리는 현상이 일어날 수 있습니다.
그래서 Update문의 사용을 최소화하여 최적화하는 것이 무거운 게임일수록 중요합니다.
[유니티 코딩]에서 Update문을 최소화하는 코딩들을 하나,둘 정리하겠습니다.
코루틴은 시간, 프레임 등등을 딜레이 시켜서 함수 실행 타이밍을 늦춰주는 함수입니다.
코루틴에 대한 설명은 여기를 눌러주세요.
그 후로, Rendering 과정이 끝나고 Pausing -> Decommissioning 순으로 이어집니다.
Pausing에서는 OnApplicationPause 함수를 사용해서 어플이 중지되었을 때를 감지합니다.
예를 들어서, 홈버튼을 눌렀을 경우입니다.
Decommissioning에서는 OnApplicationQuit 함수를 사용해서 어플이 종료되었을 때를 감지합니다.
예를 들어, 어플 사용 내역에서 어플을 날릴 때를 말합니다.
OnApplicationPause와 OnApplicationQuit도 [유니티 코딩]에서 한 번 더 다루도록 하겠습니다.
여기까지 함수(매서드) 실행 순서를 알아보았습니다 !
잘 읽으셨다면 댓글을 달아주세요.
댓글은 저에게 다음 포스팅을 위한 힘이 됩니다 ㅠ ㅠ
또, 카멜레온이 다뤘으면 좋겠다하는 포스팅 내용을 달아주시면,
해당 내용에 관한 포스팅도 해보도록 하겠습니다.
감사합니다 !
Chameleon Studio가 만든 게임하러가기
<젤랑점핑>
안드로이드- market://details?id=com.Cameleon.TangTangBall
IOS- itms-apps://itunes.apple.com/app/id1429522379
<크러쉬팡>
안드로이드- market://details?id=com.Chameleon.CrushPang
IOS- itms-apps://itunes.apple.com/app/id1450109331
'유니티(Unity) > 유니티 시작하기' 카테고리의 다른 글
유니티 태그 Tag 다는 방법 (0) 2019.02.06 이전 유니티 버전 다운받기 (0) 2019.02.06 유니티 해상도 변경하기 (0) 2019.02.04 유니티 기본 화면 구성 용어 설명 (0) 2019.02.03 유니티 개발 플랫폼 변경하기 (1) 2019.02.03 댓글