유니티

유니티 02. 이벤트 함수

채채_._. 2024. 4. 10. 03:02

이벤트 함수

- 모든 컴포턴트에 이벤트 함수 특정 순서, 조건에 따라 실행됨.

- 예를 들어 start 함수 실행하라는 메세지를 보내게 되면 모든 게임 오브젝트에 컴포넌트는 start 함수가 있는지

  검사 및 실행.

 

다뤄볼 이벤트 함수

  1. 초기화를 위한 이벤트 함수 : Awake(), Start(), OnEnable()
  2. 업데이트를 위한 이벤트 함수 : Update(), LateUpdate(), FixedUpdate()
  3. 오브젝트 파괴를 위한 이벤트 함수 : OnDestroy()
  4. 종료를 위한 이벤트 함수 : OnApplicationQuit(), OnDisable()

초기화를 위한 이벤트 함수

 

 

- 새로운 스크립트 및 오브젝트 생성함. 이후 스크립트 컴포넌트까지 생성.

 

Awake 함수

- 컴포넌트 edit에 들어가서 class 안에 있는 내용에 Awake 함수 사용.

- private void Awake() > 해당 괄호 안에 매개변수가 들어가는 경우도 있음.

- 현재 씬에서 게임오브젝트가 활성화 되어 있을 때 1회 호출.

   컴포넌트가 비활성화 상태여도 오브젝트가 활성화 되어 있으면 호출 가능.

- 데이터 초기화 하는 용도로 사용.

왼 : 게임오브젝트 활성화 / 오 : 게임오브젝트 비활성화

- 게임오브젝트가 비활성화 되었다가 활성화가 되는 시점에 다시 awake 함수 실행됨.

 

Start 함수

- 현재 씬에서 게임오브젝트와 컴포넌트가 모두 활성화 되어 있을 때 1회 호출.

- 데이터를 초기화 하는 용도로 사용.

- 첫 번째 업데이트 함수가 실행되기 직전에 호출.

- 초기화 함수 호출 순서 Awake() > OnEnable() > Start()

- 호출 순서 및 조건이 Awake 함수와 약간 다름.

왼 : 게임오브젝트 + 컴포넌트 활성화 / 오 : 게임오브젝트 활성화, 컴포넌트 비활성화

 

OnEnable() 함수

- 컴포넌트가 비활성화 되었다가 활성화 될 때 마다 1회 호출

왼 : 게임오브젝트 + 컴포넌트 활성화 / 오 : 컴포넌트 비할성화 후 활성화 + 게임오브젝트 비활성화 후 활성화

- 위 결과처럼 OnEnable 함수는 컴포넌트 뿐만 아니라 게임오브젝트가 비활성화 된 후 활성화 되면 실행됨.

 

초기화를 위한 이벤트 함수

 

Update() 함수

- 현재 씬이 실행된 후 컴포넌트가 활성화되어 있을 때 매 프레임마다 호출.

 

- 같은 프레임 같은 결과를 묶어서 호출할 수 있음.

- 업데이트 함수에 관한 내용만 계속해서 증가.

 

LateUpdate() 함수

- 현재 씬에 존재하는 모든 게임오브젝트의 Update() 함수가 1회 실행된 후 실행됨.

- 업데이트 함수 호출 순서 : Update() > LateUpdate()

- 호출 순서만 다르고 Update와 역할은 똑같음.

- Update와 호출되는 숫자도 같음.

 

FixedUpdate() 함수

- 프레임의 영향을 받지 않고 일정한 간격으로 호출.

- Fixed Timestep 변수로 조절 가능.

- Update와 LateUpdate 함수 모두 fps 영향을 받기 때문에 fps가 62면 1초에 60번, 82번이면 1초에 80번 호출.

  FixedUpdate는 1초에 50번으로 프레임의 영향을 받지 않고 정해진 횟수만큼만 호출.

- Fixed Update는 1초에 50번만 노출.

 

오브젝트 파괴를 위한 이벤트 함수

 

OnDestroy() 함수

- 게임오브젝트가 파괴될 때 1회 호출.

- 씬이 변경되거나 게임이 종료될 때도 오브젝트가 자동 삭제될 때 호출.

오브젝트 삭제 후 함수 실행

 

종료를 위한 이벤트 함수

 

OnApplicationQuit() 함수

- 게임이 종료될 때 1회 호출.

- editor에서는 플레이 모드를 중지할 때 호출.

게임오브젝트를 종료하고 나온 함수

OnDisable() 함수

- 컴포넌트가 활성화 되었다가 비활성화 때마다 1회 회출.

게임오브젝트 활성화 > 비활성화 > 활성화