일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- C
- 다익스트라
- anonymous page
- BFS
- 크래프톤 정글 4기
- 추상클래스와인터페이스
- 연결리스트
- 알고리즘
- 크래프톤정글4기
- 백준
- 유니티
- 4기
- c#
- 핀토스
- TiL
- pintos
- project3
- 크래프톤정글
- 이벤트 함수 실행 순서
- User Stack
- KRAFTON JUNGLE
- Unity
- 오블완
- 알고리즘수업-너비우선탐색2
- 네트워크
- 파이썬
- kraftonjungle
- 전쟁-전투
- 티스토리챌린지
- 크래프톤 정글
- Today
- Total
말감로그
24.08.19 Unity_C# - 생명주기(Awake vs Start, Update 등 ) 본문
유니티 생명 주기
Unity의 생명주기는 유니티 엔진의 게임 개발 과정에서 매우 중요한 개념입니다.
게임 오브젝트가 생성되어 화면에 나타나고, 게임이 진행되어 오브젝트가 사라지기까지의 일련의 과정을 의미합니다.
* MonoBehaviour 클래스는 게임 오브젝트의 동작을 정의하는 기본 클래스입니다. 이 클래스의 여러 메서드들은 Unity의 생명 주기를 통해 자동으로 호출됩니다.
Awake vs Start
둘 다 클래스의 초기화에 사용되는 이벤트 함수로 호출 시기에 따른 차이가 있습니다.
Awake
- 스크립트와 연결된 GameObject가 인스턴스화되거나, 스크립트가 처음 로드 될 때 호출된다.
- 해당 오브젝트가 Enable 상태가 아니라고 해도 위 조건에 따라 로드되면 호출된다.
- 다른 오브젝트에 대한 참조를 생성할 때 주로 생성하게 된다. (GameObject.Find, GetComponent, FindObjectOfType 등)
-- 단 Awake 호출은 무작위. (여러 개의 스크립트가 있는 경우 각 스크립트에서 'Awake' 메서드가 실행되는 순서 보장 x)
-- 무작위성으로 인해 다른 스크립트의 참조를 통해 접근을 하면 NullReferenceException이 발생하게 된다.
Start
- 해당 스크립트 컴포넌트가 활성화되는 순간 호출된다.
- 호출 시기는 Awake보단 느리게 첫 Update 보단 빠르게 호출된다.
- Start에서는 참조를 통해 접근하는 작업이 가능하다.
OnEnable vs Start
둘 다 '컴포넌트가 활성화 될 때' 불린다는 공통점이 있어 묶이게 되지만 Start는 한 번, OnEnable은 활성화 될 때 마다 불리게 된다는 차이점이 있습니다. 때문에 초기화 작업에 OnEnable을 활용하면 안됩니다. OnEnable은 주로 오브젝트 풀링에 사용하게 되는 함수라고 볼 수 있습니다.
Update vs FixedUpdate vs LateUpdate
- Update : 프레임 단위로 호출된다.
- FixedUpdate : 고정 단위로 불리게 되는 함수
- LateUpdate : Update 호출 뒤 불리게 된다.
FixedUpdate는 매 함수 호출 간격이 다른 Update와는 달리 호출 간격이 일정합니다. 따라서 매번 일정한 주기로 똑같은 연산을 처리해야하는 물리 계산인 Rigidbody에 주로 사용됩니다.
LateUpdate는 Update 함수 호출 뒤 불리기 때문에 주로 카메라의 움직임에 사용됩니다.
'TIL' 카테고리의 다른 글
24.08.20 Unity_C# - 객체 지향 프로그래밍, SOLID 원칙 (0) | 2024.08.20 |
---|---|
24.08.19 Unity_C# - Time.deltaTime, 유니티로 타이머 구현 알고리즘 설명 (0) | 2024.08.19 |
24.08.14 알고리즘 - 이진 탐색(Binary search) (0) | 2024.08.14 |
24.08.13 운영체제 - 가상 메모리, 페이지 교체 정책, 메모리 관리 (1) | 2024.08.13 |
24.08.12 운영체제 - 프로세스 동기화(경쟁 상태, 임계구역, 뮤텍스, 세마포어, 데드락) (0) | 2024.08.12 |