Unity에서 GameObject를 삭제하면 OnDestroy 메서드가 호출됩니다. OnDestroy 메서드는 GameObject가 삭제되기 전에 실행되는 메서드로, GameObject의 자원 해제, 데이터 저장 등의 작업을 수행하는 데 사용됩니다.
하지만, OnDestroy 메서드의 호출은 보장되지 않습니다. 즉, GameObject가 삭제되더라도 OnDestroy 메서드가 호출되지 않을 수도 있습니다.
공식문서의 설명을 보면 MonoBehaviour를 상속 받는 객체가 파괴 될 때 호출된다고 적혀 있습니다. 이 글을 보시는 분들은 다들 이 부분은 알고 계실것이라 생각합니다.
그 아래에 중요한 내용이 적혀 있는데
OnDestroy는 이전에 활성화되어있던, 게임 오브젝트상에서만 호출됩니다.
즉, 호출이 되지 않을 수도 있다는 것 입니다. 예를 들어 게임 씬에서 오브젝트를 삭제하면 OnDestroy가 호출되지 않을 수 있습니다.
오브젝트 파괴 시 해야할 일이 있다면 OnDestroy 대신 OnDisable을 사용하는 것을 추천드립니다.
'Unity > Tip' 카테고리의 다른 글
AssetDatabase 클래스를 사용하여 스크립트에서 에셋 생성 및 수정 (0) | 2023.12.21 |
---|---|
Unity에서 패키지의 버전을 변경하는 방법 (0) | 2023.12.17 |
Unity의 Ray에 찍힌 오브젝트를 검출하지 못하는 조건 (0) | 2023.12.01 |
두 Collider의 충돌을 무시하는 방법 (0) | 2023.11.29 |
Unity에서 Collider 충돌처리가 되지 않을 경우 (0) | 2023.11.28 |