[내일배움캠프 Day37] TWeakObjectPtr

2025. 2. 11. 22:51·내일배움캠프/TIL

과제를 진행하면서 위와 같이 에러가 발생하였는데, 맵이 바뀌면서 기존의 파티클이 제거되었는데도 파티클을 없애려고 하는 것이 원인이었습니다.

 

아래 언리얼 공식 문서를 보면 자세하게 나와있습니다.

https://dev.epicgames.com/documentation/en-us/unreal-engine/unreal-object-handling-in-unreal-engine

 

UParticleSystemComponent* Particle = nullptr;

GetWorld()->GetTimerManager().SetTimer(
    DestroyParticleTimerHandle,
    [Particle]()
    {
        if (Particle)
        {
            Particle->DestroyComponent();
        }
    },
    2.0f,
    false
);

코드를 보면 Particle은 raw 포인터로 위의 문서에서 볼 수 있듯이 가비지 컬렉터가 직접 관리하지 않아 Particle이 삭제되어도 여전히 기존 메모리를 가리킬 수 있습니다.

 

TWeakObjectPtr<UParticleSystemComponent> WeakParticle = nullptr;

GetWorld()->GetTimerManager().SetTimer(
    DestroyParticleTimerHandle,
    [WeakParticle]()
    {
        if (WeakParticle.IsValid())
        {
            WeakParticle->DestroyComponent();
        }
    },
    2.0f,
    false
);

TWeakObjectPtr은 객체가 삭제되면 자동으로 nullptr로 변환되어 삭제된 객체를 참조하는 실수를 방지할 수 있습니다. 그러므로 위와 같이 코드를 수정하여 WeakParticle.IsValid()를 사용해 객체가 유효한 경우에만 DestroyComponent()를 실행하도록 변경하였습니다.

 

 

'내일배움캠프 > TIL' 카테고리의 다른 글

[내일배움캠프 Day41] 언리얼 AI 구현  (2) 2025.02.17
[내일배움캠프 Day38] 8주차 과제 진행  (0) 2025.02.12
[내일배움캠프 Day35] 알고리즘 수업 1주차 과제  (3) 2025.02.07
[내일배움캠프 Day34] push_back과 emplace_back의 차이점  (2) 2025.02.06
[내일배움캠프 Day32] 가상 함수 동작 원리  (0) 2025.02.04
'내일배움캠프/TIL' 카테고리의 다른 글
  • [내일배움캠프 Day41] 언리얼 AI 구현
  • [내일배움캠프 Day38] 8주차 과제 진행
  • [내일배움캠프 Day35] 알고리즘 수업 1주차 과제
  • [내일배움캠프 Day34] push_back과 emplace_back의 차이점
개발자 밍
개발자 밍
dev0404 님의 블로그 입니다.
  • 개발자 밍
    Developer
    개발자 밍
  • 전체
    오늘
    어제
    • 분류 전체보기 (88)
      • 강의 (8)
        • UE Climbing System (3)
        • UE Dungeon (1)
        • HCI (4)
      • 책 (18)
        • 객체지향의 사실과 오해 (5)
        • Effective C++ (3)
        • 이득우의 게임 수학 (4)
        • 이것이 취업을 위한 컴퓨터 과학이다 (4)
        • 리뷰 (2)
      • C++ (2)
      • 알고리즘 (2)
      • 자료구조 (1)
      • Unreal (4)
      • 내일배움캠프 (52)
        • TIL (52)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

    컴퓨터구조
    컴퓨터 구조
    언리얼
    그래픽스
    내일배움캠프
    c++
    알고리즘
    자료구조
    객체지향
    Effective
    게임수학
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
개발자 밍
[내일배움캠프 Day37] TWeakObjectPtr
상단으로

티스토리툴바