public override void OnInspectorGUI() { DialogueNode node = (DialogueNode)target; int outputCount = node.GetOutputCount(); int missingOutputCount = node.choices.Count - outputCount; if (missingOutputCount > 0) { for (int i = 0; i < missingOutputCount; i++) { node.AddDynamicOutput(typeof(DialogueNode), fieldName: "Choice_" + (outputCount + i)); } } else if (missingOutputCount < 0) { for (int i = 1; i < -missingOutputCount + 1; i++) { node.RemoveDynamicPort("Choice_" + (outputCount - i)); } } }