Unity graph tool solution based on different implementation now focused on Unity.Experimental.Graphview
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

39 lines
1.6 KiB

3 years ago
using System;
using System.Collections.Generic;
using UnityEngine;
using Newtonsoft.Json;
using TNode.Editor;
using TNode.JsonSerialize;
using UnityEditor.Experimental.GraphView;
using UnityEngine.Serialization;
3 years ago
3 years ago
namespace TNode.Models{
3 years ago
[Serializable]
public class GraphData:ScriptableObject,ISerializationCallbackReceiver{
[SerializeField]
public Dictionary<string,NodeData> NodeDictionary = new Dictionary<string,NodeData>();
public List<NodeLink> nodeLinks = new();
public BlackboardData blackboardData = new();
[TextArea(1,10)]
[SerializeField]
//[HideInInspector]
private string jsonObject;
[TextArea(1,10)]
[SerializeField]
private string jsonBlackboard;
public void OnBeforeSerialize(){
jsonObject = JsonConvert.SerializeObject(NodeDictionary,JsonSerializeTool.JsonSerializerSettings);
jsonBlackboard = JsonConvert.SerializeObject(blackboardData,JsonSerializeTool.JsonSerializerSettings);
}
public void OnAfterDeserialize(){
//Deserialize node dictionary
var deserializedData = JsonConvert.DeserializeObject<Dictionary<string,NodeData>>(jsonObject,JsonSerializeTool.JsonSerializerSettings);
NodeDictionary = deserializedData;
//Deserialize blackboard data
var deserializedBlackboard = JsonConvert.DeserializeObject<BlackboardData>(jsonBlackboard,JsonSerializeTool.JsonSerializerSettings);
blackboardData = deserializedBlackboard;
Debug.Log("hi");
}
3 years ago
}
}