void DrawDataInspector(BTNodeData data) { EditorGUIUtility.labelWidth = 24; if (!string.IsNullOrEmpty(mDelKey)) { data.RemoveData(mDelKey); if (mChangeDict.ContainsKey(mDelKey)) { mChangeDict.Remove(mDelKey); } mDelKey = null; } foreach (var key in mChangeDict.Keys) { data.AddData(key, mChangeDict [key]); } mChangeDict.Clear(); if (data.data != null) { foreach (var kv in data.data) { DrawItemInspector(kv); } } EditorGUILayout.BeginHorizontal(); { mKey = EditorGUILayout.TextField("key:", mKey); mValue = EditorGUILayout.TextField("val:", mValue); if (GUILayout.Button("+", GUILayout.MaxWidth(20))) { if (!string.IsNullOrEmpty(mKey)) { data.AddData(mKey, mValue); mKey = ""; mValue = ""; } } } EditorGUILayout.EndHorizontal(); }
public BehaviourTree(string name, BTNodeData data = null) { Name = name; BTNodeDict = new Dictionary <string, BTNode> (); OrphanNodeDict = new Dictionary <string, BTNode> (); if (data == null) { data = new BTNodeData(BTConst.RootName, null, (BTEditorWindow.window.position.width - BTConst.RIGHT_INSPECT_WIDTH) / 2, 50); data.AddData("restart", "1"); } Root = new BTNode(this, null, data); AddNode(Root); BTHelper.AutoAlignPosition(Root); }