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