커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
IsValid() vs !=nullptr 에 관한 질문입니다.
쉽게 배우는 C++ 언리얼 엔진 3D 게임 개발 기초
4주차
북마크
최*근
댓글
1
추천
0
조회수
18
조회수
18
답변 완료

* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.

* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.



아래와 같이 IsValid()과 !=nullptr 의 차이점을 정리했습니다.


https://velog.io/@asdf123ggg/%EB%82%B4%EC%9D%BC%EB%B0%B0%EC%9B%80%EC%BA%A0%ED%94%84-%EC%82%AC%EC%A0%84%EC%BA%A0%ED%94%84-Unreal-IsValid-vs-nullptr


이 과정에서 다음과 같은 궁금증이 발생했습니다.


UCLASS()
class BASIS_API AMainGame : public AGameMode
{
	GENERATED_BODY()

public:
	virtual void BeginPlay() override;

	UPROPERTY(EditAnywhere)
	TSubclassOf<class UUserWidget> WidgetClass;

	UPROPERTY()
	TObjectPtr<class UUserWidget> Widget;

	UPROPERTY(EditAnywhere)
	TSubclassOf<class UUserWidget> EndWidgetClass;

	UPROPERTY()
	TObjectPtr<class UUserWidget> EndWidget;
};

void AMainGame::BeginPlay()
{
	Super::BeginPlay();
	if (IsValid(WidgetClass))
	{
		Widget = CreateWidget<UUserWidget>(GetWorld(), WidgetClass);
	}
	if (IsValid(EndWidgetClass))
	{
		EndWidget = CreateWidget<UUserWidget>(GetWorld(), EndWidgetClass);
	}
   if (IsValid(Widget))
   {
     	Widget->AddToViewport();
    }
      // ....
  }


Widget과 EndWidget은 IsValid() 으로 확인하는 것이 타당해 보입니다.


그런데, WidgetClass과 EndWidgetClass도 IsValid()으로 검사해야 하는 것인가요? !=nullptr으로도 충분할 것이라고 생각합니다.





취소
 공유
취소
댓글 0
댓글 알림
나의얼굴