void UPaperGroupedSpriteComponent::PostEditChangeChainProperty(FPropertyChangedChainEvent& PropertyChangedEvent) { if ((PropertyChangedEvent.Property != nullptr) && (PropertyChangedEvent.Property->GetFName() == GET_MEMBER_NAME_CHECKED(UPaperGroupedSpriteComponent, PerInstanceSpriteData))) { if (PropertyChangedEvent.ChangeType == EPropertyChangeType::ArrayAdd) { const int32 AddedAtIndex = PropertyChangedEvent.GetArrayIndex(PropertyChangedEvent.Property->GetFName().ToString()); check(AddedAtIndex != INDEX_NONE); SetupNewInstanceData(PerInstanceSpriteData[AddedAtIndex], AddedAtIndex, FTransform::Identity, nullptr, nullptr, FColor::White); //@TODO: Need to pull the sprite from somewhere } MarkRenderStateDirty(); } Super::PostEditChangeChainProperty(PropertyChangedEvent); }
void UDialogueWave::PostEditChangeChainProperty(FPropertyChangedChainEvent& PropertyChangedEvent) { Super::PostEditChangeChainProperty(PropertyChangedEvent); int32 NewArrayIndex = PropertyChangedEvent.GetArrayIndex(TEXT("ContextMappings")); if (ContextMappings.IsValidIndex(NewArrayIndex)) { UpdateMappingProxy(ContextMappings[NewArrayIndex]); } else if (PropertyChangedEvent.Property && PropertyChangedEvent.Property->GetFName() == GET_MEMBER_NAME_CHECKED(UDialogueWave, SpokenText)) { for(FDialogueContextMapping& ContextMapping : ContextMappings) { UpdateMappingProxy(ContextMapping); } } }