Skip to content

Commit

Permalink
[opt]
Browse files Browse the repository at this point in the history
中文:优化设置界面的tab切换,页面数据保存逻辑
English: Optimize tab switching and page data saving logic in the settings interface
  • Loading branch information
Kojima648 committed Aug 10, 2024
1 parent c7fad13 commit d4482cf
Showing 1 changed file with 24 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -35,18 +35,36 @@ public override void OnActivate(string searchContext, VisualElement rootElement)
public override void OnDeactivate()
{
base.OnDeactivate();
SaveAssetData(m_SettingsPath);

// 确保只有在有修改时才保存
if (m_CustomSettings != null && m_CustomSettings.hasModifiedProperties)
{
EditorApplication.delayCall += () => SaveAssetData(k_SettingsPath);
}
}

void SaveAssetData(string path)
{
TEngineSettings old = AssetDatabase.LoadAssetAtPath<TEngineSettings>(m_SettingsPath);
TEngineSettings old = AssetDatabase.LoadAssetAtPath<TEngineSettings>(k_SettingsPath);
if (old == null)
{
Debug.LogError($"Failed to load TEngineSettings from path: {k_SettingsPath}");
return;
}

TEngineSettings data = ScriptableObject.CreateInstance<TEngineSettings>();
data.Set(old.FrameworkGlobalSettings, old.BybridCLRCustomGlobalSettings);
AssetDatabase.DeleteAsset(path);
AssetDatabase.CreateAsset(data, path);
AssetDatabase.SaveAssets();
AssetDatabase.Refresh();

if (AssetDatabase.DeleteAsset(path))
{
AssetDatabase.CreateAsset(data, path);
AssetDatabase.SaveAssets();
AssetDatabase.Refresh();
}
else
{
Debug.LogError($"Failed to delete existing asset at path: {path}");
}
}


Expand Down

0 comments on commit d4482cf

Please sign in to comment.