Ejemplo n.º 1
0
        public void CreateEasyAISystem()
        {
            if (SelectedObject != null)
            {
                if (!SelectedObject.GetComponent <EasyAIFSM>())
                {
                    coreSystem = SelectedObject.AddComponent <EasyAIFSM> ();
                    coreSystem.Init();

                    Node node = ScriptableObject.CreateInstance <StartAINode>();
                    node.self = coreSystem.gameObject;
                    node.Init();
                    node.rect.x = 100f;
                    node.rect.y = 100f;
                    coreSystem.nodes.Add(node);
                }
                else
                {
                    coreSystem = SelectedObject.GetComponent <EasyAIFSM>();
                }
            }
            else
            {
                //	SelectedObject = new GameObject ("Easy AI Agent");
                //	coreSystem = SelectedObject.AddComponent<CoreSystem> ();
                //	coreSystem.Init ();
                //
            }
        }
Ejemplo n.º 2
0
        // Callback from Context Menu
        private void ContextCallback(object obj)
        {
            if (obj.ToString() == "Delete Node")
            {
                Node d_node = NodeAtPosition(mousePos);
                if (d_node != null)
                {
                    Undo.RegisterCompleteObjectUndo(coreSystem, "Delete Node");
                    // Break opposite connections of this Nodes Connectors
                    foreach (Connector c in d_node.connectors)
                    {
                        c.BreakOpposite();
                    }

                    coreSystem.nodes.Remove(d_node);

                    Undo.DestroyObjectImmediate(d_node);
                }
            }
            else if (obj.ToString() == "Duplicate Node")
            {
                Node dup_node = NodeAtPosition(mousePos);
                if (dup_node != null)
                {
                    Node node = ScriptableObject.CreateInstance(dup_node.GetType().Name) as Node;
                    node.Init();
                    node.rect.x = mousePos.x + 60f;
                    node.rect.y = mousePos.y;
                    coreSystem.nodes.Add(node);

                    //EditorUtility.CopySerialized(dup_node, node);
                }
            }
            else if (obj.ToString() == "Create GameObject")
            {
                SelectedObject = new GameObject("Easy AI Agent");
                coreSystem     = SelectedObject.AddComponent <EasyAIFSM> ();

                coreSystem.Init();

                Node node = ScriptableObject.CreateInstance <StartAINode>();
                node.self = coreSystem.gameObject;
                node.Init();
                node.rect.x = mousePos.x;
                node.rect.y = mousePos.y;
                coreSystem.nodes.Add(node);
            }

            else
            {
                Type typeData;

                if (nodes.TryGetValue(obj.ToString(), out typeData))         // Returns true.
                {
                    Node node = ScriptableObject.CreateInstance(typeData.Name) as Node;
                    node.self = coreSystem.gameObject;
                    node.Init();
                    node.rect.x = mousePos.x;
                    node.rect.y = mousePos.y;
                    coreSystem.nodes.Add(node);
                }
            }
        }