private void ChangeFieldType(BaseNode node, BaseNode parent, int typeInd) { BaseNode newNode; switch (typeInd) { case 1: newNode = new SequenceNode(node.GetChildren(), node.GetId()); break; case 2: newNode = new SelectorNode(node.GetChildren(), node.GetId()); break; case 3: newNode = new TimeMonitorNode(node.GetChildren(), node.GetId()); break; default: newNode = new ActionNode(); newNode.SetId(node.GetId()); break; } if (parent == null) { HintedExecutionBehaviourTree tree = (HintedExecutionBehaviourTree)target; tree.tree = newNode; } else { var changeIndex = parent.GetChildren().FindIndex(x => x == node); parent.GetChildren()[changeIndex] = newNode; } }