public static BTNodeDesigner[] CreateBTreeNodeDesignerFromConfig(BTEditorTreeConfig _config) { BTNodeDesigner[] _nodeDesigners = new BTNodeDesigner[_config.mEditorNodes.Length]; BTEditorNode[] _editorNodes = CreateBTreeEditorNode(_config); //递归创建节点 for (int i = 0; i < _nodeDesigners.Length; i++) { if (_nodeDesigners[i] == null) { _nodeDesigners[i] = CreateBTreeNodeDesigner(_config.mEditorNodes, _editorNodes, ref _nodeDesigners, i); } } //初始化父节点与连线 for (int i = 0; i < _nodeDesigners.Length; i++) { var _editorNode = _editorNodes[i]; if (_editorNode.mNode.parent != null) { int _parentIndex = _editorNode.mNode.parent.index; _nodeDesigners[i].mParentNode = _nodeDesigners[_parentIndex]; BTNodeConnection _connection = new BTNodeConnection(_nodeDesigners[i], _nodeDesigners[_parentIndex], NodeConnectionType.Incoming); _nodeDesigners[i].mParentNodeConnection = _connection; } } return(_nodeDesigners); }
public static BTEditorTreeConfig CreateEditorTreeConfigFromRootEditorNode(BTNodeDesigner _rootEditorNode) { TreeConfig _treeConfig = BTFactory.CreateConfigFromBTreeRoot(_rootEditorNode.mEditorNode.mNode); BTEditorTreeConfig _treeEditorConfig = new BTEditorTreeConfig(_treeConfig); int index = 0; CreateEditorNodeConfigFromRootEditorNode(_rootEditorNode, ref _treeEditorConfig.mEditorNodes, ref index); return(_treeEditorConfig); }
public static BTEditorNode[] CreateBTreeEditorNode(BTEditorTreeConfig _config) { BTNode[] _btreeNodes = BTFactory.CreateBTreeFromConfig(_config); BTEditorNode[] _editorNodes = new BTEditorNode[_btreeNodes.Length]; for (int i = 0; i < _editorNodes.Length; i++) { _editorNodes[i] = new BTEditorNode(_btreeNodes[i]); _editorNodes[i].mPos = new Vector2(_config.mEditorNodes[i].mPosX, _config.mEditorNodes[i].mPosY); _editorNodes[i].mDisable = _config.mEditorNodes[i].mDisable; } return(_editorNodes); }