From 96d73bcb81afff60da58259481f34e12b4c07ce2 Mon Sep 17 00:00:00 2001 From: Thor Brigsted Date: Sat, 5 Jan 2019 22:00:57 +0100 Subject: [PATCH] Better error handling for InstancePortLists --- Scripts/Editor/NodeEditorGUILayout.cs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Scripts/Editor/NodeEditorGUILayout.cs b/Scripts/Editor/NodeEditorGUILayout.cs index 30f6426..6129dd8 100644 --- a/Scripts/Editor/NodeEditorGUILayout.cs +++ b/Scripts/Editor/NodeEditorGUILayout.cs @@ -304,6 +304,10 @@ namespace XNodeEditor { (Rect rect, int index, bool isActive, bool isFocused) => { XNode.NodePort port = node.GetPort(arrayData.name + " " + index); if (hasArrayData) { + if (arrayData.arraySize <= index) { + EditorGUI.LabelField(rect, "Invalid element " + index); + return; + } SerializedProperty itemData = arrayData.GetArrayElementAtIndex(index); EditorGUI.PropertyField(rect, itemData); } else EditorGUI.LabelField(rect, port.fieldName); @@ -313,6 +317,7 @@ namespace XNodeEditor { list.elementHeightCallback = (int index) => { if (hasArrayData) { + if (arrayData.arraySize <= index) return EditorGUIUtility.singleLineHeight; SerializedProperty itemData = arrayData.GetArrayElementAtIndex(index); return EditorGUI.GetPropertyHeight(itemData); } else return EditorGUIUtility.singleLineHeight;