Hello I have this piece of code editing existing property. I have a lot of checks but DetailLayout.EditDefaultProperty(MemberPropertyHandle)->CustomWidget() crashes the engine on ACCESS VIOLATION
TSharedPtr<IPropertyHandle> SunSettingsStruct = DetailLayout.GetProperty(GET_MEMBER_NAME_CHECKED(AEFPLightningSystem, SunSettings));
if (SunSettingsStruct.IsValid())
{
TSharedPtr<IPropertyHandle> MemberPropertyHandle = SunSettingsStruct->GetChildHandle(TEXT("bUseLightShaftOcclusion"));
if (MemberPropertyHandle.IsValid())
{
// Log the property name to verify its correct
UE_LOG(EFLIGHTUI, Warning, TEXT("Property Name: %s"), *MemberPropertyHandle->GetProperty()->GetName());
if (MemberPropertyHandle->IsEditable())
{
UE_LOG(EFLIGHTUI, Warning, TEXT("bUseLightShaftOcclusion is Editable"));
DetailLayout.EditDefaultProperty(MemberPropertyHandle)->CustomWidget()
.NameContent()
[
MemberPropertyHandle->CreatePropertyNameWidget()
]
.ValueContent()
[
MemberPropertyHandle->CreatePropertyValueWidget()
];
}
else
{
UE_LOG(EFLIGHTUI, Warning, TEXT("bUseLightShaftOcclusion is not Editable"));
}
}
}