Exemplo n.º 1
0
 private void AddNode(Type type, Vector2 position)
 {
     if (type.IsSubclassOf(typeof(Leaf)))
     {
         EditorAILeafNode node = Node.Create(EditorAILeafNode.ID, position) as EditorAILeafNode;
         node.Init(type);
     }
     else if (type.IsSubclassOf(typeof(Decorator)))
     {
         EditorAIDecoratorNode node = Node.Create(EditorAIDecoratorNode.ID, position) as EditorAIDecoratorNode;
         node.Init(type);
     }
     else if (type.IsSubclassOf(typeof(Combinational)))
     {
         EditorAICombinationalNode node = Node.Create(EditorAICombinationalNode.ID, position) as EditorAICombinationalNode;
         node.Init(type);
     }
 }
Exemplo n.º 2
0
        public EditorAINode LoadDecorator(Decorator node)
        {
            EditorAIDecoratorNode output = Node.Create(EditorAIDecoratorNode.ID, Vector3.zero) as EditorAIDecoratorNode;

            output.dataType = node.GetType().ToString();
            var clone = node.Clone() as Decorator;

            clone.subNode = null;
            output.data   = new GenericSerializable(output.dataType);
            output.data.SetObject(clone, nodeTypes);

            //load child
            EditorAINode child = LoadNode(node.subNode);

            //attach children
            child.Parent.ApplyConnection(output.child);

            return(output);
        }