Exemplo n.º 1
0
    protected override void OnSave(TreeNodeGraph graph)
    {
        if (graph == null)
        {
            return;
        }
        var root = graph.GetRoot();

        if (root != null)
        {
            var param = root.data as EntityParamModel;

            string name = "model";
            if (string.IsNullOrEmpty(param.asset) == false)
            {
                name = param.asset.Replace(".prefab", "");
            }
            string path = EditorUtility.SaveFilePanel("导出特效配置文件", Application.dataPath + "/Resources/r/config/", name, "txt");
            path = path.ToLower();
            EditorUtility.DisplayProgressBar("请稍候", "正在导出特效配置文件", 0.1f);

            Save(param, path);

            EditorUtility.ClearProgressBar();

            AssetDatabase.Refresh();
        }
    }
Exemplo n.º 2
0
 public static void SelectEntityParam()
 {
     Selection.selectionChanged = () =>
     {
         if (Application.isPlaying)
         {
             if (Selection.activeGameObject != null)
             {
                 if (uint.TryParse(Selection.activeGameObject.name, out uint id))
                 {
                     BattleEntity entity = BattleManager.Instance.GetEntity(id);
                     if (entity != null)
                     {
                         var window = GetWindow <EntityParamWindow>();
                         if (window != null && window.config == entity.config)
                         {
                             return;
                         }
                         BattleManager.Instance.GetParam(entity.config, (param) =>
                         {
                             TreeNodeGraph graph = TreeNodeGraph.CreateGraph(param);
                             if (graph != null)
                             {
                                 window        = Open <EntityParamWindow>(graph);
                                 window.config = entity.config;
                             }
                         });
                     }
                 }
             }
         }
     };
 }
Exemplo n.º 3
0
 public TreeNode(TreeNodeGraph graph, int id, ITreeNode node)
 {
     this.graph      = graph;
     this.id         = id;
     data            = node;
     name            = node.name;
     rect            = node.rect;
     data.OnAddChild = OnAddChild;
 }
Exemplo n.º 4
0
    public static T Open <T>(TreeNodeGraph graph) where T : TreeNodeWindow
    {
        T t = GetWindow <T>();

        t.titleContent = new GUIContent(typeof(T).Name);

        t.data = graph;

        return(t);
    }
Exemplo n.º 5
0
    private void OnEnable()
    {
        hideFlags = HideFlags.HideAndDontSave;

        mMenuDic = GetMenu();

        if (data == null)
        {
            data = new TreeNodeGraph();
        }
    }
Exemplo n.º 6
0
 protected static void AddChildNode(ref TreeNodeGraph graph, ref TreeNode parent, ITreeNode param)
 {
     if (parent != null)
     {
         for (int i = 0; i < param.children.Count; ++i)
         {
             TreeNode node = graph.AddNode(param.children[i]);
             node.parent = parent;
             AddChildNode(ref graph, ref node, param.children[i]);
         }
     }
 }
Exemplo n.º 7
0
    public static TreeNodeGraph CreateGraph(ITreeNode root)
    {
        if (root == null)
        {
            return(null);
        }
        TreeNodeGraph graph = new TreeNodeGraph();

        var node = graph.AddNode(root);

        AddChildNode(ref graph, ref node, root);
        return(graph);
    }
Exemplo n.º 8
0
    private static TreeNodeGraph CreateTemplate()
    {
        var modelParam = new EntityParamModel();

        modelParam.rect = new Rect(20, 20, TreeNode.WIDTH, TreeNode.HEIGHT);

        var actionParam = new EntityParamAction();

        actionParam.rect = new Rect(300, 20, TreeNode.WIDTH, TreeNode.HEIGHT);
        modelParam.AddChild(actionParam);

        var animationParam = new EntityParamAnimation();

        animationParam.rect = new Rect(600, 20, TreeNode.WIDTH, TreeNode.HEIGHT);
        modelParam.AddChild(animationParam);

        return(TreeNodeGraph.CreateGraph(modelParam));
    }
Exemplo n.º 9
0
    /// <summary>
    /// 显示编辑器的主要组件
    /// </summary>
    private void DrawEditor()
    {
        DrawToolbar();
        BeginWindows();
        if (data == null)
        {
            data = new TreeNodeGraph();
        }
        for (int i = 0; i < data.nodes.Count; i++)
        {
            //data.nodes[i].rect = GUILayout.Window(i,data.nodes[i].rect, DrawNode, data.nodes[i].id + "-" + data.nodes[i].name, WindowStyle);

            data.nodes[i].rect = GUI.Window(i, data.nodes[i].rect, DrawNode, data.nodes[i].id + "-" + data.nodes[i].name);

            DrawConnection(data.nodes[i]);
        }
        EndWindows();
    }
Exemplo n.º 10
0
    private static bool OnOpeEntityParam(int instanceID, int line)
    {
        var asset = EditorUtility.InstanceIDToObject(instanceID) as TextAsset;

        if (asset != null)
        {
            EntityParam param = EntityParam.Create(asset.text);
            if (param != null)
            {
                TreeNodeGraph graph = TreeNodeGraph.CreateGraph(param);
                if (graph != null)
                {
                    Open <EntityParamWindow>(graph);
                    return(true);
                }
            }
        }
        return(false);
    }
Exemplo n.º 11
0
    protected override TreeNodeGraph OnLoad()
    {
        string path = EditorUtility.OpenFilePanel("Select a config", Application.dataPath + "/Resources/r/config/", "txt");

        if (string.IsNullOrEmpty(path))
        {
            return(null);
        }

        Debug.Log(path);


        string text = File.ReadAllText(path);

        EntityParam param = EntityParam.Create(text);

        if (param != null)
        {
            return(TreeNodeGraph.CreateGraph(param));
        }

        return(base.OnLoad());
    }
Exemplo n.º 12
0
    //绘制工具栏
    private void DrawToolbar()
    {
        mToolBarRect = new Rect(0, 0, Screen.width, 20);
        GUILayout.BeginArea(mToolBarRect, EditorStyles.toolbar);
        GUILayout.BeginHorizontal(new GUILayoutOption[0]);
        if (GUILayout.Button("New", EditorStyles.toolbarButton, new GUILayoutOption[]
        {
            GUILayout.Width(42f)
        }))
        {
            data = OnNew();
        }
        if (GUILayout.Button("Load", EditorStyles.toolbarButton, new GUILayoutOption[]
        {
            GUILayout.Width(42f)
        }))
        {
            var graph = OnLoad();
            if (graph != null)
            {
                data = graph;
            }
        }
        if (GUILayout.Button("Save", EditorStyles.toolbarButton, new GUILayoutOption[]
        {
            GUILayout.Width(42f)
        }))
        {
            OnSave(data);
        }

        GUILayout.FlexibleSpace();

        GUILayout.EndVertical();
        GUILayout.EndArea();
    }
Exemplo n.º 13
0
 protected virtual void OnSave(TreeNodeGraph graph)
 {
 }