Skip to content

Commit 4d8dfeb

Browse files
committed
Better way to unregister NDMF toggle callback
1 parent 040626d commit 4d8dfeb

File tree

1 file changed

+7
-17
lines changed

1 file changed

+7
-17
lines changed

Ndmf/Editor/MeshiaCascadingAvatarMeshSimplifierEditor.cs

Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,6 @@ internal class MeshiaCascadingAvatarMeshSimplifierEditor : UnityEditor.Editor
2323
private SerializedProperty TargetTriangleCountProperty => serializedObject.FindProperty(nameof(MeshiaCascadingAvatarMeshSimplifier.TargetTriangleCount));
2424
private SerializedProperty EntriesProperty => serializedObject.FindProperty(nameof(MeshiaCascadingAvatarMeshSimplifier.Entries));
2525

26-
Action<bool>? onNdmfPreviewEnabledChanged;
27-
2826

2927
[MenuItem("GameObject/Meshia Mesh Simplification/Meshia Cascading Avatar Mesh Simplifier", false, 0)]
3028
static void AddCascadingAvatarMeshSimplifier()
@@ -39,15 +37,6 @@ private void OnEnable()
3937
RefreshEntries();
4038
}
4139

42-
private void OnDisable()
43-
{
44-
if(onNdmfPreviewEnabledChanged != null)
45-
{
46-
MeshiaCascadingAvatarMeshSimplifierPreview.PreviewControlNode.IsEnabled.OnChange -= onNdmfPreviewEnabledChanged;
47-
onNdmfPreviewEnabledChanged = null;
48-
}
49-
}
50-
5140
private void RefreshEntries()
5241
{
5342
if(Target.transform.parent == null)
@@ -84,8 +73,6 @@ public override VisualElement CreateInspectorGUI()
8473
var targetTriangleCountPresetDropdownField = root.Q<DropdownField>("TargetTriangleCountPresetDropdownField");
8574
var adjustButton = root.Q<Button>("AdjustButton");
8675
var autoAdjustEnabledToggle = root.Q<Toggle>("AutoAdjustEnabledToggle");
87-
88-
8976
var triangleCountLabel = root.Q<IMGUIContainer>("TriangleCountLabel");
9077

9178
var removeInvalidEntriesButton = root.Q<Button>("RemoveInvalidEntriesButton");
@@ -102,7 +89,6 @@ public override VisualElement CreateInspectorGUI()
10289
{
10390
name = "Custom";
10491
}
105-
10692
targetTriangleCountPresetDropdownField.SetValueWithoutNotify(name);
10793
if (AutoAdjustEnabledProperty.boolValue)
10894
{
@@ -287,18 +273,22 @@ public override VisualElement CreateInspectorGUI()
287273

288274
return itemRoot;
289275
};
276+
277+
ndmfPreviewToggle.SetValueWithoutNotify(MeshiaCascadingAvatarMeshSimplifierPreview.PreviewControlNode.IsEnabled.Value);
290278
ndmfPreviewToggle.RegisterValueChangedCallback(changeEvent =>
291279
{
292280
MeshiaCascadingAvatarMeshSimplifierPreview.PreviewControlNode.IsEnabled.Value = changeEvent.newValue;
293281
});
294282

295-
ndmfPreviewToggle.SetValueWithoutNotify(MeshiaCascadingAvatarMeshSimplifierPreview.PreviewControlNode.IsEnabled.Value);
296-
onNdmfPreviewEnabledChanged = (newValue) =>
283+
Action<bool> onNdmfPreviewEnabledChanged = (newValue) =>
297284
{
298285
ndmfPreviewToggle.SetValueWithoutNotify(newValue);
299286
};
300287
MeshiaCascadingAvatarMeshSimplifierPreview.PreviewControlNode.IsEnabled.OnChange += onNdmfPreviewEnabledChanged;
301-
288+
ndmfPreviewToggle.RegisterCallback<DetachFromPanelEvent>(detachFromPanelEvent =>
289+
{
290+
MeshiaCascadingAvatarMeshSimplifierPreview.PreviewControlNode.IsEnabled.OnChange -= onNdmfPreviewEnabledChanged;
291+
});
302292

303293

304294
return root;

0 commit comments

Comments
 (0)