Exemplo n.º 1
0
        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();
        }
Exemplo n.º 2
0
 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);
 }