From 0823707ac882c34627c1401803a89084b3c87755 Mon Sep 17 00:00:00 2001 From: Mikhail <99481254+DCFApixels@users.noreply.github.com> Date: Sun, 19 May 2024 23:02:00 +0800 Subject: [PATCH] improving stability of template overriders in prefabs --- src/EntityTemplate/Editor/EntityTemplateEditor.cs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/EntityTemplate/Editor/EntityTemplateEditor.cs b/src/EntityTemplate/Editor/EntityTemplateEditor.cs index 5b5ac16..9a0ba6c 100644 --- a/src/EntityTemplate/Editor/EntityTemplateEditor.cs +++ b/src/EntityTemplate/Editor/EntityTemplateEditor.cs @@ -71,10 +71,9 @@ namespace DCFApixels.DragonECS.Unity.Editors return; } } - - componentsProp.InsertArrayElementAtIndex(0); - - componentsProp.GetArrayElementAtIndex(0).managedReferenceValue = ((IComponentTemplate)obj).Clone(); + int index = componentsProp.arraySize; + componentsProp.InsertArrayElementAtIndex(index); + componentsProp.GetArrayElementAtIndex(index).managedReferenceValue = ((IComponentTemplate)obj).Clone(); serializedObject.ApplyModifiedProperties(); EditorUtility.SetDirty(this.target); @@ -104,10 +103,11 @@ namespace DCFApixels.DragonECS.Unity.Editors GUILayout.BeginVertical(UnityEditorUtility.GetStyle(Color.black, 0.2f)); DrawTop(target); GUILayout.Label("", GUILayout.Height(0), GUILayout.ExpandWidth(true)); - for (int i = 0; i < componentsProp.arraySize; i++) + for (int i = componentsProp.arraySize - 1; i >= 0; i--) { DrawComponentData(componentsProp.GetArrayElementAtIndex(i), componentsProp.arraySize, i); } + GUILayout.EndVertical(); } private void DrawTop(ITemplateInternal target)