private void traceNode(BT.BTNode node, string pre) { Debug.Log(pre + " " + node.GetType()); pre += " - "; if (node is BT.ComponentNode) { var compNode = node as BT.ComponentNode; foreach (var child in compNode.childs) { traceNode(child, pre); } } }
void PopupMenuSelect(object objProperty) { if (objProperty.GetType() != typeof(PopupMenuOptions)) { return; } var option = (PopupMenuOptions)objProperty; switch (option) { case PopupMenuOptions.AddAct: onAddNodeByType(selectNode, typeof(BT.ActionNode)); break; case PopupMenuOptions.AddCdn: onAddNodeByType(selectNode, typeof(BT.ConditionNode)); break; case PopupMenuOptions.Up: { int index = selectNode.parent.childs.IndexOf(selectNode); if (index > 0) { selectNode.parent.remove(selectNode.sn); selectNode.parent.add(index - 1, selectNode); } } break; case PopupMenuOptions.Down: { int index = selectNode.parent.childs.IndexOf(selectNode); if (index < selectNode.parent.childs.Count - 1) { selectNode.parent.remove(selectNode.sn); selectNode.parent.add(index + 1, selectNode); } } break; case PopupMenuOptions.Rep: { Type selectType = null; BTViewNode node = selectNode as BTViewNode; if (node.proxy is BT.SelectorNode) { selectType = typeof(BT.SequenceNode); } else if (node.proxy is BT.SequenceNode) { selectType = typeof(BT.SelectorNode); } BT.BTNode childDataNode = Activator.CreateInstance(selectType) as BT.BTNode; var childViewNode = new BTViewNode(); childViewNode.formatByDataNode(childDataNode); var parentDataNode = (selectNode.parent as BTViewNode).proxy as BT.ComponentNode; parentDataNode.addChild(childDataNode); selectNode.parent.add(childViewNode); for (int i = 0; i < selectNode.childs.Count; i++) { if (selectNode.childs [i].parent == selectNode) { childViewNode.add(selectNode.childs [i]); } } onDelNode(selectNode); } break; case PopupMenuOptions.AddSel: { Type selectType = null; BTViewNode node = selectNode as BTViewNode; selectType = typeof(BT.SelectorNode); BT.BTNode childDataNode = Activator.CreateInstance(selectType) as BT.BTNode; var childViewNode = new BTViewNode(); childViewNode.formatByDataNode(childDataNode); var parentDataNode = (selectNode as BTViewNode).proxy as BT.ComponentNode; parentDataNode.addChild(childDataNode); selectNode.parent.add(childViewNode); } break; case PopupMenuOptions.AddSeq: { Type selectType = null; BTViewNode node = selectNode as BTViewNode; selectType = typeof(BT.SequenceNode); BT.BTNode childDataNode = Activator.CreateInstance(selectType) as BT.BTNode; var childViewNode = new BTViewNode(); childViewNode.formatByDataNode(childDataNode); var parentDataNode = (selectNode as BTViewNode).proxy as BT.ComponentNode; parentDataNode.addChild(childDataNode); selectNode.parent.add(childViewNode); } break; case PopupMenuOptions.Del: onDelNode(selectNode); break; } }
public void formatByDataNode(BT.BTNode dataNode) { }