| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- StickyHeader
- ReactNative
- 프론트엔드
- 사이드 프로젝트
- 21일챌린지
- 나락퀴즈
- React
- 66일챌린지
- 리액트네이티브
- 똥피하기
- extension
- 습관
- 게임개발
- Unity초보
- gamedev
- Flatlist
- 디지몬상테스트
- 모바일개발
- 프로젝트
- Unity
- 어플
- 개발자
- 토이프로젝트
- three.js
- react-three-fiber
- Chrome Extension
- cloudfront
- 리액트
- onpress
- 뇽뇽이
- Today
- Total
개발 블로그
Unity 라이프사이클 함수 한 번에 정리 (Awake, Start, Update) 본문
게임 만들다 보면 자연스럽게 외우게 되는 것들
Unity로 게임을 처음 만들기 시작하면
제일 먼저 마주치는 게 함수 이름들입니다.
Start, Update, OnCollisionEnter…
튜토리얼에서는 막 쓰라고 하는데,
막상 보면 이런 생각 들죠.
“이 함수는 언제 호출되는 거지?”
“이걸 왜 여기다 쓰는 거야?”
“Update에 다 때려 넣으면 안 되나…?”
저도 처음엔
일단 돌아가면 OK 마인드로 개발하다가
프레임 떨어지고, 버그 터지고 나서
그제야 함수 역할을 하나씩 이해하기 시작했습니다.
이 글에서는
Unity에서 정말 자주 쓰이는 함수들만
실제 사용 기준으로 정리해보겠습니다.
1️⃣ Start()
- 스크립트가 활성화될 때 한 번 호출
- 초기화 용도로 가장 많이 사용
보통 여기서 하는 일:
- 변수 초기값 세팅
- 컴포넌트 참조 가져오기 (GetComponent)
- 시작 시 한 번만 실행될 로직
👉 게임 시작 시 딱 한 번 실행하고 싶은 로직이면
대부분 Start()에 들어갑니다.
2️⃣ Update()
- 매 프레임마다 호출
- Unity에서 제일 많이 쓰이면서, 제일 위험한 함수
주 사용 용도:
- 키 입력 처리
- 캐릭터 이동
- 실시간 상태 체크
⚠️ 주의할 점
Update 안에 무거운 로직 넣으면
프레임 드랍 바로 옵니다.
3️⃣ FixedUpdate()
- 물리 연산 전용
- 일정한 시간 간격으로 호출
주로 쓰는 경우:
- Rigidbody 이동
- 물리 기반 캐릭터 컨트롤
👉 AddForce, velocity 조작은
Update 말고 FixedUpdate가 정석입니다.
4️⃣ LateUpdate()
- 모든 Update가 끝난 뒤 실행
- 카메라 처리에서 자주 사용
대표적인 예:
- 캐릭터 따라오는 카메라
- Update에서 변경된 값 기준 후처리
👉 “다 끝난 다음에 처리해야 하는 것”은
LateUpdate가 딱 맞습니다.
5️⃣ OnCollisionEnter()
- Collider + Rigidbody가 있을 때 충돌 발생 시 호출
- 물리 충돌 처리용
사용 예:
- 플레이어가 적과 부딪힘
- 벽에 닿았는지 체크
비슷한 함수들:
- OnCollisionStay
- OnCollisionExit
6️⃣ OnTriggerEnter()
- Trigger로 설정된 Collider 충돌 시 호출
- 물리 반응 없이 이벤트만 처리
주 사용 예:
- 아이템 획득
- 특정 구역 진입 체크
- 이벤트 트리거
👉 이벤트용 충돌 = Trigger
이건 거의 공식처럼 쓰입니다.
7️⃣ Awake()
- Start보다 먼저 호출
- 오브젝트 생성 직후 실행
주로 쓰는 경우:
- 싱글톤 패턴
- 다른 오브젝트보다 먼저 초기화해야 할 때
👉 초기화 순서가 중요하면 Awake
8️⃣ OnEnable / OnDisable
- 오브젝트 활성/비활성 시 호출
자주 쓰이는 상황:
- 이벤트 구독 / 해제
- UI 열고 닫을 때 처리
👉 UI 시스템 만들 때 생각보다 자주 쓰입니다.
정리하면 이렇게 외우면 편합니다
- Awake: 제일 먼저
- Start: 시작할 때 한 번
- Update: 매 프레임
- FixedUpdate: 물리
- LateUpdate: 마무리
- Collision / Trigger: 충돌 이벤트
처음엔 전부 외우려고 하지 말고
“아, 이럴 땐 이 함수구나” 정도만 감 잡아도 충분합니다.
마무리하며
Unity 개발하다 보면
이 함수들은 결국 몸에 익게 됩니다.
문제는
아무 생각 없이 쓰면
나중에 디버깅이 지옥이 된다는 점입니다.
이 글을 보고
“아 이건 Update에 넣으면 안 되겠네”
이 정도만 느껴져도 충분히 의미 있습니다.
'Unity' 카테고리의 다른 글
| Unity 오브젝트 생성·삭제할 때 자주 쓰는 함수들 (0) | 2026.02.05 |
|---|