Imagine folowing C++ code:
UCLASS(Blueprintable)
class BLOCKS_API UBlockDefinition : public UObject
{
GENERATED_BODY()
public:
UPROPERTY(EditDefaultsOnly, Category = "TCF2 | BlockDefinition")
bool HasCustomScaling;
UPROPERTY(EditDefaultsOnly, Category = "TCF2 | BlockDefinition", meta = (EditCondition = HasCustomScaling))
FVector CustomBlockScale;
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "TCF2 | BlockDefinition", meta = (EditCondition = "!HasCustomScaling"))
FVector MinBlockScale;
};
Create Blueprint based on this class and try to edit defaults. Check Has Custom Scaling, fill Custom Block Scale and navigate between properties using Tab key. You will see that:
As you can see, I was able to get into field which should be disabled and I was able to modify it’s value: