개발 블로그

Unity 라이프사이클 함수 한 번에 정리 (Awake, Start, Update) 본문

Unity

Unity 라이프사이클 함수 한 번에 정리 (Awake, Start, Update)

daehwan2 2026. 2. 4. 09:15

게임 만들다 보면 자연스럽게 외우게 되는 것들

Unity로 게임을 처음 만들기 시작하면
제일 먼저 마주치는 게 함수 이름들입니다.

Start, Update, OnCollisionEnter…
튜토리얼에서는 막 쓰라고 하는데,
막상 보면 이런 생각 들죠.

“이 함수는 언제 호출되는 거지?”
“이걸 왜 여기다 쓰는 거야?”
“Update에 다 때려 넣으면 안 되나…?”

저도 처음엔
일단 돌아가면 OK 마인드로 개발하다가
프레임 떨어지고, 버그 터지고 나서
그제야 함수 역할을 하나씩 이해하기 시작했습니다.

이 글에서는
Unity에서 정말 자주 쓰이는 함수들만
실제 사용 기준으로 정리해보겠습니다.


1️⃣ Start()

 
void Start() { }
  • 스크립트가 활성화될 때 한 번 호출
  • 초기화 용도로 가장 많이 사용

보통 여기서 하는 일:

  • 변수 초기값 세팅
  • 컴포넌트 참조 가져오기 (GetComponent)
  • 시작 시 한 번만 실행될 로직

👉 게임 시작 시 딱 한 번 실행하고 싶은 로직이면
대부분 Start()에 들어갑니다.


2️⃣ Update()

 
void Update() { }
  • 매 프레임마다 호출
  • Unity에서 제일 많이 쓰이면서, 제일 위험한 함수

주 사용 용도:

  • 키 입력 처리
  • 캐릭터 이동
  • 실시간 상태 체크

⚠️ 주의할 점
Update 안에 무거운 로직 넣으면
프레임 드랍 바로 옵니다.


3️⃣ FixedUpdate()

 
void FixedUpdate() { }
  • 물리 연산 전용
  • 일정한 시간 간격으로 호출

주로 쓰는 경우:

  • Rigidbody 이동
  • 물리 기반 캐릭터 컨트롤

👉 AddForce, velocity 조작은
Update 말고 FixedUpdate가 정석입니다.


4️⃣ LateUpdate()

 
void LateUpdate() { }
  • 모든 Update가 끝난 뒤 실행
  • 카메라 처리에서 자주 사용

대표적인 예:

  • 캐릭터 따라오는 카메라
  • Update에서 변경된 값 기준 후처리

👉 “다 끝난 다음에 처리해야 하는 것”은
LateUpdate가 딱 맞습니다.


5️⃣ OnCollisionEnter()

 
void OnCollisionEnter(Collision collision) { }
  • Collider + Rigidbody가 있을 때 충돌 발생 시 호출
  • 물리 충돌 처리용

사용 예:

  • 플레이어가 적과 부딪힘
  • 벽에 닿았는지 체크

비슷한 함수들:

  • OnCollisionStay
  • OnCollisionExit

6️⃣ OnTriggerEnter()

 
void OnTriggerEnter(Collider other) { }
  • Trigger로 설정된 Collider 충돌 시 호출
  • 물리 반응 없이 이벤트만 처리

주 사용 예:

  • 아이템 획득
  • 특정 구역 진입 체크
  • 이벤트 트리거

👉 이벤트용 충돌 = Trigger
이건 거의 공식처럼 쓰입니다.


7️⃣ Awake()

 
void Awake() { }
  • Start보다 먼저 호출
  • 오브젝트 생성 직후 실행

주로 쓰는 경우:

  • 싱글톤 패턴
  • 다른 오브젝트보다 먼저 초기화해야 할 때

👉 초기화 순서가 중요하면 Awake


8️⃣ OnEnable / OnDisable

 
void OnEnable() { } void OnDisable() { }
  • 오브젝트 활성/비활성 시 호출

자주 쓰이는 상황:

  • 이벤트 구독 / 해제
  • UI 열고 닫을 때 처리

👉 UI 시스템 만들 때 생각보다 자주 쓰입니다.


정리하면 이렇게 외우면 편합니다

  • Awake: 제일 먼저
  • Start: 시작할 때 한 번
  • Update: 매 프레임
  • FixedUpdate: 물리
  • LateUpdate: 마무리
  • Collision / Trigger: 충돌 이벤트

처음엔 전부 외우려고 하지 말고
“아, 이럴 땐 이 함수구나” 정도만 감 잡아도 충분합니다.


마무리하며

Unity 개발하다 보면
이 함수들은 결국 몸에 익게 됩니다.

문제는
아무 생각 없이 쓰면
나중에 디버깅이 지옥이 된다는 점입니다.

이 글을 보고
“아 이건 Update에 넣으면 안 되겠네”
이 정도만 느껴져도 충분히 의미 있습니다.

반응형

'Unity' 카테고리의 다른 글

Unity 오브젝트 생성·삭제할 때 자주 쓰는 함수들  (0) 2026.02.05
Comments