39 lines
1.2 KiB
Markdown
Raw Normal View History

2024-10-12 17:19:46 +08:00
# ConfigRestartRequired
- **功能描述:** 使属性在设置里改变后弹出重启编辑器的对话框。
- **使用位置:** UPROPERTY
- **引擎模块:** Config
- **元数据类型:** bool
- **常用程度:** ★★★
使属性在设置里改变后弹出重启编辑器的对话框。
自然的,一般是用于真的需要重启编辑器的设置。
## 测试代码:
```cpp
public:
UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = ConfigRestartRequired, meta = (ConfigRestartRequired="true"))
FString MyString_ConfigRestartRequired;
```
## 测试效果:
![Untitled](Untitled.png)
## 原理:
在SSettingsEditor生效可见得是在UI窗口发生改变。然后弹出对话框。
```cpp
void SSettingsEditor::NotifyPostChange( const FPropertyChangedEvent& PropertyChangedEvent, class FEditPropertyChain* PropertyThatChanged )
{
static const FName ConfigRestartRequiredKey = "ConfigRestartRequired";
if (PropertyChangedEvent.Property->GetBoolMetaData(ConfigRestartRequiredKey) || PropertyChangedEvent.MemberProperty->GetBoolMetaData(ConfigRestartRequiredKey))
{
OnApplicationRestartRequiredDelegate.ExecuteIfBound();
}
}
```