728x90
반응형
PostEditChangeProperty
에디터에서 C++ 클래스의 특정 속성 값을 변경했을 때 호출되는 함수이다.
에디터에서 객체의 속성이 변경된 후, 추가적인 처리가 필요할 때 사용한다.
예를 들어, 디자이너나 개발자가 에디터에서 객체의 속성 값을 변경했을 때 자동으로 이와 관련된 추가 작업들을 할 수 있는 콜백 함수이다.
함수 원본은 UObject Class에 있다.
함수 정의 및 함수 설명
// .h
#if WITH_EDITOR
virtual void PostEditChangeProperty(struct FPropertyChangedEvent& PropertyChangedEvent) override;
#endif
이 함수는 런 타임이 아닌, 에디터에서만 작동한다.
따라서, 함수의 시작과 끝에 다음 매크로를 사용해줘야 한다. (.h, .cpp 둘 다)
- 시작: #if WITH_EDITOR
- 끝: endif
FPropertyChangedEvent 매개변수를 통해 변경된 속성에 대한 정보를 얻을 수 있다.
이를 통해 어떤 속성이 변경되었는지 확인할 수 있다.
- 변경된 속성의 포인터 (Property)
- 변경된 이유 (ChangeType, 예: 값 변경, 배열 요소 추가/삭제 등)
사용 예
.h
#if WITH_EDITOR
virtual void PostEditChangeProperty(struct FPropertyChangedEvent& PropertyChangedEvent) override;
#endif
// .cpp
#if WITH_EDITOR
void MyActor::PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent)
{
Super::PostEditChangeProperty(PropertyChangedEvent);
// 변경된 속성 확인
FProperty* ChangedProperty = PropertyChangedEvent.Property;
if (ChangedProperty)
{
FString PropertyName = ChangedProperty->GetName();
// GET_MEMBER_NAME_CHECKED은 해당 속성이 해당 클래스에 존재하는지 확인하는 매크로
if (PropertyName == GET_MEMBER_NAME_CHECKED(ThisClass, MyProperty))
{
// MyProperty가 변경된 경우 처리
UE_LOG(LogTemp, Warning, TEXT("MyProperty가 변경되었습니다."));
}
}
}
#endif
728x90
반응형
'📘Unreal Engine > 📝Unreal Engine' 카테고리의 다른 글
| [Unreal Engine] 범위 액터 순회 (TActorRange) (0) | 2025.01.10 |
|---|---|
| [Unreal Engine] 입력 액션에서 Shift, Ctrl 같이 사용하기 (0) | 2024.11.29 |
| [Unreal Engine] 언리얼 스마트 포인터 (0) | 2024.11.22 |
| [Unreal engine] ExposeOnSpawn 메타데이터 지정자 (0) | 2024.11.19 |
| [Unreal Engine] 오브젝트의 위치를 기준으로 위젯 위치 구하기 (0) | 2024.11.11 |