게임개발 캠프 22일차

IIRU·2026년 6월 16일

1. Awake()

오브젝트가 메모리에 할당 될 때 1회 실행된다.

라이프 사이클 중에서 가장 먼저 호출된다.

2. OnEnable()

현재 오브젝트가 비활성화 상태에서 활성화 상태가 될 때 1번 실행된다.

3.Start()

Update가 실행되기 전에 1번 실행된다.

4. Update()

Start가 실행된 후 매 프레임마다 1번씩 실행된다.

FixedUpdate()

일정 시간간격마다 실행된다.

LateUpdate()

Update()가 종료된 후에 프레임당 한번 실행된다.

5. OnDisable()

현재 오브젝트가 활성화된 상태에서 비활성화 상태가 될 때 1번 실행된다.

6. OnDestroy()

오브젝트가 없어질 때 한번 실행된다.

순서는 Awake() → OnEnable() → Start() → Update() → OnDisable() → OnDestroy() 순서로 실행된다.

Start() 와 Enable()의 차이

start는 시작할 때 단 한번 실행되지만, Enable은 오브젝트가 생성될 때 마다 다시 실행된다.

FixedUpdate()와 Update()의 차이

FixedUpdate는 고정된 시간 간격을 가지고 실행되지만, Update는 매 프레임마다 실행된다.

그렇기 때문에 Update는 키 입력이나 화면갱신 같은 프레임단위로 입력받거나 바꾸어 주어야하는 곳에 좋다.

FixedUpdate는 물리적 연산이 필요한 작업에 좋다고 한다.

Race Condition

두 개 이상의 프로세스가 공통 자원을 사용할 때, 접근 순서에 따라 다른 결과가 발생하는 현상을 말한다.

캐싱을 하는 이유

매번 컴포넌트나 오브젝트를 새로 만들 수 없기 때문에 미리 만들어 두어서 연산량을 줄이는 것이다.

사용방법

 private void Awake()
 {
     Debug.Log("awake");
     //캐싱
     rb = GetComponent<Rigidbody2D>();
     col = GetComponent<Collider2D>();
 }

미리 해당 컴포넌트를 Awake()에 생성하는 방법이 있다.

지연동작

Invoke() - n초 후에 A함수를 실행한다.

InvokeReapeating() - n초 후에 A함수를 m초뒤에 반복 실행

CancelInvoke() - 모든 Invoke를 종료.

profile
초보 개발자 블로그입니다!

0개의 댓글