CREATE YOUR WORLD
Scripting

이벤트 함수

8min

이벤트 함수는 Unity 엔진에서 GameObject 또는 구성 요소의 생명 주기 동안 자동으로 호출되는 특별한 함수입니다. 따라서 이들은 생명 주기 이벤트 함수라고도 불립니다.

이벤트 함수는 Unity 엔진에 의해 특정 타이밍에 자동으로 호출됩니다.

이벤트 함수는 Unity 엔진에서 GameObject 또는 구성 요소의 생명 주기 동안 자동으로 호출되는 특별한 함수입니다. 따라서 이들은 생명 주기 이벤트 함수라고도 불립니다.

ZEPETO 스크립트 생명 주기 흐름도
ZEPETO 스크립트 생명 주기 흐름도




초기화 이벤트

  • 초기화 이벤트를 사용하여 업데이트 전에 초기화 코드를 호출할 수 있습니다.
  • Start 함수는 물리 업데이트와 첫 번째 프레임 전에 호출되며, Awake 함수는 장면을 호출할 때 장면의 각 객체에 대해 호출됩니다.
  • 여러 객체에 대한 Start 및 Awake 함수는 무작위 순서로 호출되지만, 모든 Awake 호출이 완료된 후에 Start가 호출됩니다.
  • 이는 Start 함수가 Awake 함수에서 이전에 수행된 다른 초기화를 사용할 수 있음을 의미합니다.



정기 업데이트 이벤트

  • 정기 업데이트는 매 프레임마다 호출되는 모든 업데이트를 의미합니다.
  • 그들은 각 프레임이 렌더링되기 전에 객체의 위치, 상태 및 동작을 변경합니다.
  • ZEPETOScript는 업데이트 함수에서 계산을 처리하기 위한 지침을 제공합니다.

물리 이벤트

  • 물리 이벤트는 GameObject에 추가된 스크립트를 통해 이벤트 함수를 호출합니다.
  • OnCollisionEnter, OnCollisionStay 및 OnCollisionExit 함수는 접촉이 이루어지고, 유지되며, 끊어질 때 호출됩니다.
  • OnTriggerEnter, OnTriggerStay 및 OnTriggerExit 함수는 객체 충돌체가 트리거로 설정될 때 호출됩니다(즉, 충돌에 물리적으로 반응하지 않고 단순히 감지하는 충돌체).
  • 이러한 함수는 물리 업데이트 중 여러 접촉이 감지되면 연속적으로 여러 번 호출될 수 있으며, 따라서 충돌에 대한 세부정보(위치, 객체의 정체성)를 제공하는 매개변수가 함수에 전달됩니다.

GUI 이벤트

  • ZEPETOScript는 GUI 컨트롤을 렌더링하고 요소의 클릭에 반응하는 이벤트를 지원합니다. 이들은 일반 프레임 업데이트와 다르게 작동하므로 UI 관련 로직은 OnGUI 함수에 배치해야 합니다.

마우스 이벤트

  • ZEPETOScript에서는 마우스 상호작용에 응답하는 이벤트가 지원됩니다.
  • 그러나 마우스 이벤트는 관련 GameObject에 Collider 또는 Collider2D가 있어야 하며, 해당 Collider가 마우스로 클릭될 때만 트리거됩니다.
  • OnMouseDown()은 사용자가 마우스 버튼을 클릭할 때 호출됩니다.
  • OnMouseUp()은 사용자가 마우스 버튼을 놓을 때 호출됩니다.
  • OnMouseOver()는 마우스 커서가 GameObject의 Collider 또는 Collider2D 위에 있는 동안 매 프레임마다 호출됩니다.



종료 이벤트

  • 종료 이벤트는 장면의 모든 활성화된 객체에서 호출됩니다.
  • OnDisable 함수는 주어진 객체가 비활성화되거나 비활성 상태일 때 호출되며, OnApplicationQuit는 애플리케이션이 닫히기 전에 모든 GameObject에서 호출됩니다.



ZEPETOScript에서 본질적으로 지원하는 모든 이벤트 함수는 아래 샘플 코드에 나열되어 있습니다.

Sample_MonoBehaviourLifeCycle




아래의 테스트 코드 출력 화면을 확인하세요.

Document image


ZEPETOScript가 제공하는 Unity 이벤트 함수에 대해 더 알아보려면 아래 링크를 클릭하세요.

📘 이벤트 함수의 실행 순서 https://docs.unity3d.com/kr/current/Manual/ExecutionOrder.html



업데이트됨 11 Oct 2024
Doc contributor
이 페이지가 도움이 되었습니까?