コード例 #1
0
ファイル: CodeGraph.cs プロジェクト: wbskyboy/CodeGraph
        public void SaveGraph(bool shouldRefreshAssets = true)
        {
            ValidateSaveButton();
            var newGraphObject = SaveUtility.GetInstance(GraphView).Save(GraphObject.CodeGraphData.AssetPath, shouldRefreshAssets);

            GraphObject = newGraphObject;
        }
コード例 #2
0
        public CodeGraphObject Save(string fileName, bool shouldRefreshAssets = true)
        {
            graphObject = ScriptableObject.CreateInstance <CodeGraphObject>();
            graphObject.Initialize(new CodeGraphData {
                AssetPath = fileName
            });
            var connectedEdges = Edges.Where(x => x.input.node != null).ToList();

            graphObject.CodeGraphData.Edges.AddRange(SerializationHelper.SerializeEdges(connectedEdges));
            graphObject.CodeGraphData.Nodes.AddRange(SerializationHelper.SerializeNodes(Nodes));
            graphObject.CodeGraphData.LastEditedAt = DateTime.Now.ToString(CultureInfo.InvariantCulture);
            graphObject.CodeGraphData.Groups       = new List <GroupData>(CodeGraph.Instance.GraphObject.CodeGraphData.Groups);
            graphObject.CodeGraphData.Groups.ForEach(group => { group.Title = group.GroupReference.title; });
            foreach (var groupItem in CodeGraph.Instance.GraphObject.CodeGraphData.GroupItems)
            {
                graphObject.CodeGraphData.GroupItems.Add(groupItem.Key, CodeGraph.Instance.GraphObject.CodeGraphData.GroupItems[groupItem.Key]);
            }
            graphObject.CodeGraphData.GraphName       = CodeGraph.Instance.GraphObject.CodeGraphData.GraphName;
            graphObject.CodeGraphData.SchemaVersion   = CodeGraph.Instance.GraphObject.CodeGraphData.SchemaVersion;
            graphObject.CodeGraphData.IsMonoBehaviour = CodeGraph.Instance.GraphObject.CodeGraphData.IsMonoBehaviour;

            File.WriteAllText(fileName, JsonUtility.ToJson(graphObject.CodeGraphData, true));
            if (shouldRefreshAssets)
            {
                AssetDatabase.ImportAsset(fileName);
            }
            return(graphObject);
        }
コード例 #3
0
 public void LoadGraph(CodeGraphObject graphObject)
 {
     this.graphObject = graphObject;
     ClearGraph();
     CreateGroups();
     GenerateNodes();
     ClearEmptyGroups();
     ConnectNodes();
     PostInitNodes();
 }
コード例 #4
0
ファイル: CodeGraph.cs プロジェクト: wbskyboy/CodeGraph
 public void SetGraph(CodeGraphObject graphObject)
 {
     this.GraphObject = graphObject;
 }