UE4:エディタでプロパティーを変更したときの呼ばれるPostEditChangeProperty について
エディタでプロパティーを変更したときの呼ばれるC++関数PostEditChangeProperty で取得できる
PropertyとMemberPropertyの違いを実際に値を変更して調べてみました。
LocationもRotationもScaleもXを変更した場合はPropertyにはXが返ってくることを期待したのですが、なんか違ってました。
バグかも。
LocationのXを変更した場合
LogTemp: PostEditChangeProperty Property:RelativeLocation MemberProperty:RelativeLocation
RotationのXを変更した場合
LogTemp: PostEditChangeProperty Property:RelativeRotation MemberProperty:RelativeRotation
ScaleのXを変更した場合
LogTemp: PostEditChangeProperty Property:Z MemberProperty:RelativeScale3D LogTemp: PostEditChangeProperty Property:RelativeScale3D MemberProperty:RelativeScale3D

#if WITH_EDITOR
//エディターで値を変更するとその時呼ばれる
void AMyActor::PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent){
Super::PostEditChangeProperty(PropertyChangedEvent);
const FName PropertyName = PropertyChangedEvent.Property == nullptr ? NAME_None : PropertyChangedEvent.Property->GetFName();
const FName MemberPropertyName = PropertyChangedEvent.MemberProperty == nullptr ? NAME_None : PropertyChangedEvent.MemberProperty->GetFName();
UE_LOG(LogTemp, Log, TEXT("PostEditChangeProperty Property:%s MemberProperty:%s"), *PropertyName.ToString(), *MemberPropertyName.ToString());
}
#endif