| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- Toy Project
- PS
- Data Structure
- Unity
- C++
- multi-thread
- Network Programming
- BOJ
- git
- System Programming
- 독서
- c#
- Online Judge
- Today
- Total
I'm FanJae.
[20260520] Unity ( Unity의 LifeCycle ) 본문
1. Lifecycle 이란?
- Lifecycle은 MonoBehaviour를 상속한 Script가 Unity에 의해 호출되는 실행 흐름을 의미한다.
- 즉, 개발자가 직접 호출하지 않아도, Unity가 정해진 시점에 자동으로 호출하는 메서드다.
2. Lifecycle 메서드
- 주요 메서드를 위주로 적었다.
Awake()
OnEnable()
Start()
FixedUpdatE()
UpdatE()
OnDisable()
OnDestory()
3. 실행 순서
- 대략적인 실행 흐름은 다음과 같다.
- 물론 내부에서는 이 메서드 외에도 많은 메서드의 호출이 일어나게 된다.
Awake() -> OnEnable() -> Start() -> FixedUpdate() ->
Update() -> OnDisable() -> OnDestory()
4. 각 메서드의 역할
1) Awake
- Script가 처음 로드될 때 호출한다.
- 초기 참조 설정에 사용한다.
2) OnEnable()
- GameObject 또는 Component가 활성화될 때 호출된다.
- 활성화될 때마다 실행된다.
3) Start()
- 첫 번째 Update가 호출되기 전에 한 번 호출된다.
- 초기 설정에 주로 사용된다.
4) FixedUpdate()
- 일정한 시간 간격으로 호출한다.
- 물리 처리에 사용된다.
5) Update()
- 매 프레임마다 호출한다.
- 입력 처리, 일반 게임 로직에 사용한다.
6) OnDisable()
- GameObject 또는 Component가 비활성화될 때 호출한다.
7) OnDestory()
- GameObject 또는 Component가 제거될 때 호출한다.
- 오브젝트는 Object.Destory 또는 씬 종료에 대한 응답으로 파괴될 수 있다.
5. Start() vs Awake()
- Awake는 Script가 로드될 때 가장 먼저 초기화 된다. 따라서 다른 컴포넌트 참조를 가져오는 용도로 주로 사용할 수 있다.
- 반면, Start는 첫 Update 전에 호출되므로, 게임 시작 준비 작업을 진행할 때 주로 사용한다.
public class PlayerMove : MonoBehaviour
{
private Rigidbody rb;
void Awake()
{
rb = GetComponent<Rigidbody>();
}
void Start()
{
Debug.Log("Player 준비 완료");
}
}
6. Update()와 FixedUpdate 차이
- Update()는 매 프레임 호출되므로, 키보드 입력, 마우스 입력, 일반 로직을 처리한다.
- FixedUpdate()는 고정된 시간 간격으로 호출하기 때문에 물리 처리에 주로 사용된다.
'Unity > Unity 초격차캠프' 카테고리의 다른 글
| [20260521] Unity 정리 ( Unity 회전 처리 기초 - Euler, Quaternion, LookAt, RotateAround ) (0) | 2026.05.22 |
|---|---|
| [20260521] Unity 정리 ( Transform 이동 처리 기초 - Translate, Input, deltaTime ) (0) | 2026.05.21 |
| [20260520] Unity ( transform과 gameObject ) (0) | 2026.05.20 |
| [20260520] Unity ( 기본 GameObject와 Component ) (0) | 2026.05.20 |
| [20260520] Unity ( Unity의 Editor 조작 ) (0) | 2026.05.20 |