diff --git a/Source/Editor/CustomEditors/Dedicated/ActorEditor.cs b/Source/Editor/CustomEditors/Dedicated/ActorEditor.cs index a8773a8d7..efa13d48a 100644 --- a/Source/Editor/CustomEditors/Dedicated/ActorEditor.cs +++ b/Source/Editor/CustomEditors/Dedicated/ActorEditor.cs @@ -218,7 +218,7 @@ namespace FlaxEditor.CustomEditors.Dedicated node.Text = Utilities.Utils.GetPropertyNameUI(sceneObject.GetType().Name); } // Array Item - else if (editor.ParentEditor?.Values?.Type.IsArray ?? false) + else if (editor.ParentEditor is CollectionEditor) { node.Text = "Element " + editor.ParentEditor.ChildrenEditors.IndexOf(editor); } @@ -261,16 +261,14 @@ namespace FlaxEditor.CustomEditors.Dedicated } // Skip if no change detected - if (!editor.Values.IsReferenceValueModified && skipIfNotModified) + var isRefEdited = editor.Values.IsReferenceValueModified; + if (!isRefEdited && skipIfNotModified) return null; TreeNode result = null; - - if (editor.ChildrenEditors.Count == 0) + if (editor.ChildrenEditors.Count == 0 || (isRefEdited && editor is CollectionEditor)) result = CreateDiffNode(editor); - bool isScriptEditorWithRefValue = editor is ScriptsEditor && editor.Values.HasReferenceValue; - for (int i = 0; i < editor.ChildrenEditors.Count; i++) { var child = ProcessDiff(editor.ChildrenEditors[i], !isScriptEditorWithRefValue); @@ -278,7 +276,6 @@ namespace FlaxEditor.CustomEditors.Dedicated { if (result == null) result = CreateDiffNode(editor); - result.AddChild(child); } } diff --git a/Source/Editor/CustomEditors/Values/ListValueContainer.cs b/Source/Editor/CustomEditors/Values/ListValueContainer.cs index 13098b503..e19c5ad53 100644 --- a/Source/Editor/CustomEditors/Values/ListValueContainer.cs +++ b/Source/Editor/CustomEditors/Values/ListValueContainer.cs @@ -51,7 +51,7 @@ namespace FlaxEditor.CustomEditors if (values.HasReferenceValue) { - if (values.ReferenceValue is IList v && values.Count == v.Count && v.Count > index) + if (values.ReferenceValue is IList v && v.Count > index) { _referenceValue = v[index]; _hasReferenceValue = true;