Unity의 OnApplicationQuit, OnDisable, OnDestroy 이벤트 함수의 차이점

2023. 5. 20. 12:00·Unity
반응형

Unity에서는 게임 오브젝트가 파괴되기 전에 작업을 수행할 수 있는 여러 이벤트 함수를 제공합니다. 이번 글에서는 그 중 onApplicationQuit, OnDisable, OnDestroy 이벤트 함수에 대해 자세히 살펴보겠습니다.

onApplicationQuit

onApplicationQuit 함수는 게임이 종료될 때 호출되는 함수입니다. 이 함수는 게임 오브젝트에 속하지 않은 전역 함수이므로, 모든 스크립트에서 사용할 수 있습니다. onApplicationQuit 함수는 다음과 같이 정의할 수 있습니다.

void onApplicationQuit()
{
    // 게임이 종료될 때 수행할 작업
}

onApplicationQuit 함수는 게임이 종료될 때 한 번만 호출되며, 호출 이후에는 어떠한 코드도 실행되지 않습니다. 따라서 이 함수에서는 게임 종료 전에 반드시 수행해야 할 작업들을 처리해야 합니다. 이 함수는 게임이 종료되기 전에 필요한 데이터를 저장하는 작업 등을 처리하는 데 사용됩니다.

OnDisable

OnDisable 함수는 게임 오브젝트가 비활성화될 때 호출되는 함수입니다. 이 함수는 다음과 같이 정의할 수 있습니다.

void OnDisable()
{
    // 게임 오브젝트가 비활성화될 때 수행할 작업
}

OnDisable 함수는 게임 오브젝트가 활성화되었다가 다시 비활성화되는 경우에도 호출됩니다. 이 함수에서는 게임 오브젝트가 활성화될 때 수행된 작업을 되돌리는 등의 작업을 수행할 수 있습니다. 예를 들어, 게임 오브젝트가 비활성화될 때, 해당 오브젝트에서 실행되고 있는 타이머나 애니메이션을 중지할 수 있습니다.

Note: 이 메서드에서는 코루틴을 실행할 수 없습니다.

OnDestroy

OnDestroy 함수는 게임 오브젝트가 파괴될 때 호출되는 함수입니다. 이 함수는 다음과 같이 정의할 수 있습니다.

void OnDestroy()
{
    // 게임 오브젝트가 파괴될 때 수행할 작업
}

OnDestroy 함수는 게임 오브젝트가 파괴되기 전에 호출됩니다. 이 함수에서는 게임 오브젝트가 파괴되기 전에 수행해야 할 작업을 처리할 수 있습니다. 예를 들어, 게임 오브젝트가 파괴될 때, 해당 오브젝트가 사용하고 있는 리소스나 메모리를 해제할 수 있습니다.

이 함수는 해당 게임 오브젝트가 활성화 된 상태에서만 호출됩니다. 따라서, 게임 오브젝트가 비활성화 된 상태에서 OnDestroy 함수를 호출하려면, 해당 게임 오브젝트의 activeInHierarchy 속성을 true로 설정해야 합니다.

어느 함수를 사용해야 할까요?

Unity에서는 게임 오브젝트의 생명 주기에 따라 다양한 이벤트 함수를 제공합니다. 각 함수는 게임의 다른 시점에서 호출되며, 각각의 함수에서는 다른 작업을 처리할 수 있습니다. 적절한 이벤트 함수를 선택하여 게임 오브젝트의 생명 주기를 관리하는 것이 중요합니다.

만약 게임 오브젝트에서 실행 중인 타이머나 애니메이션 등을 멈추고 싶다면 OnDisable 함수를 사용하세요. 게임 종료 전에 필요한 데이터를 저장하고 싶다면 onApplicationQuit 함수를 사용하세요. 게임 오브젝트가 파괴될 때, 해당 오브젝트가 사용하고 있는 리소스나 메모리를 해제하고 싶다면 OnDestroy 함수를 사용하세요.

결론

Unity에서는 게임 오브젝트의 생명 주기에 따라 다양한 이벤트 함수를 제공합니다. 이번 글에서는 onApplicationQuit, OnDisable, OnDestroy 이벤트 함수에 대해 살펴보았습니다. 각 함수는 게임의 다른 시점에서 호출되며, 각각의 함수에서는 다른 작업을 처리할 수 있습니다. 적절한 이벤트 함수를 선택하여 게임 오브젝트의 생명 주기를 관리하는 것이 중요합니다.

저작자표시 비영리 변경금지 (새창열림)

'Unity' 카테고리의 다른 글

Unity : Ray, Raycast 및 RaycastHit  (0) 2023.06.22
Unity의 IL2CPP란?  (0) 2023.06.21
C# Action과 UnityEvent의 차이점  (2) 2023.05.11
Unity : 사운드 재생  (0) 2023.04.25
Unity에서 Transform 컴포넌트와 RectTransform 컴포넌트의 차이점  (0) 2023.04.24
'Unity' 카테고리의 다른 글
  • Unity : Ray, Raycast 및 RaycastHit
  • Unity의 IL2CPP란?
  • C# Action과 UnityEvent의 차이점
  • Unity : 사운드 재생
코샵
코샵
나의 코딩 일기장
    반응형
  • 코샵
    끄적끄적 코딩 공방
    코샵
  • 전체
    오늘
    어제
    • 분류 전체보기 (513) N
      • 상품 추천 (33) N
      • MongoDB (4)
      • 하드웨어 (1) N
      • 일기장 (4)
      • Unity (138)
        • Tip (41)
        • Project (1)
        • Design Pattern (8)
        • Firebase (6)
        • Asset (2)
      • 파이썬 (127)
        • Basic (40)
        • OpenCV (8)
        • Pandas (15)
        • PyQT (3)
        • SBC(Single Board Computer) (1)
        • 크롤링 (14)
        • Fast API (29)
        • Package (6)
      • Linux (4)
      • C# (97)
        • Algorithm (11)
        • Window (7)
      • TypeScript (48)
        • CSS (10)
      • Git (11)
      • SQL (5)
      • Flutter (10)
        • Tip (1)
      • System (1)
      • BaekJoon (6)
      • Portfolio (2)
      • MacOS (1)
      • 유틸리티 (1)
      • 서비스 (6)
      • 자동화 (3)
      • Hobby (10)
        • 물생활 (10)
        • 식집사 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 다비즈
  • 공지사항

  • 인기 글

  • 태그

    유니티
    rtsp
    list
    스크립트 실행 순서
    programming101
    스마트스토어리뷰
    appdevelopment
    긴유통기한우유
    상품 리뷰 크롤링
    리뷰관리
    카페24리뷰
    Python
    codingcommunity
    codingtips
    카페24리뷰이관
    믈레코비타멸균우유
    셀레니움
    cv2
    쇼핑몰리뷰
    리뷰이관
    파이썬
    learntocode
    스크립트 실행
    리스트
    unity
    devlife
    C#
    ipcamera
    라떼우유
    programmerlife
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
코샵
Unity의 OnApplicationQuit, OnDisable, OnDestroy 이벤트 함수의 차이점
상단으로

티스토리툴바