반응형
Destroy와 DestroyImmediate의 차이
Destroy와 DestroyImmediate는 Unity에서 게임 오브젝트나 컴포넌트를 파괴하는 메서드들이다.
Destroy
- 오브젝트를 안전하게 파괴하기 위해 사용한다.
-파괴는 Destroy 메서드가 호출된 후 게임의 현재 프레임이 끝날 때까지 지연, 즉 메서드 호출 시점과 실제 오브젝트가 파괴되는 시점 사이에 짧은 지연이 있다.
- 이 지연은 Unity가 현재 프레임에서 실행 중인 모든 코드가 완료될 수 있도록 하며, 오브젝트가 안전하게 파괴될 수 있도록 한다.
- 주로 런타임 중에 사용된다.
DestroyImmediate
- 오브텍트를 즉시 파괴한다.
- 호출 즉시 지정된 오브젝트를 파괴하며, 현재 실행 중인 코드가 완료되기를 기다리지 않는다.
- 주로 에디터 스크립트와 테스트 코드에서 사용된다. 런타임 중에 사용할 경우 버그 발생 가능성이 크다. 현재 실행 중인 스크립트의 오브젝트를 파괴하면, 해당 스크립트의 나머지 코드 실행이 완료되기 전에 오브젝트가 사라지게 되어 문제를 일으킬 수 있다.
- 에디터 모드에서 리소스를 정리할 때 유용. 예를 들어, 에디터 스크립트가 생성한 임시 오브젝트를 즉시 제거하는 데 사용할 수 있다.
반응형
반응형
'Unity' 카테고리의 다른 글
Unity C# 클래스 정의에서 콜론(:) 이해하기 (1) | 2024.02.26 |
---|---|
UnityEvent, UnityAction, Action(.NET)에 관하여 (0) | 2024.02.22 |
Rigidbody2D의 velocity를 Vector2.zero로 했음에도 불구하고 zero가 안 먹히는 현상 (0) | 2024.02.21 |
Physics2d.Raycast 에서 감지가 되지 않을 때 When Physics2d.Raycast is not detected (0) | 2024.02.21 |
스파인2D에서 셋팅한 에임, 유니티에서 동작하지 않을 때 When the aim set in Spine2D does not work in Unity SkeletonUtilityBone (0) | 2024.02.20 |