fix: daily commit

main
taoria 3 years ago
parent fb19efe0d2
commit 1b030c7cd4
  1. 8
      Resources.meta
  2. 162
      Resources/Newtonsoft.Json-for-Unity.Converters.asset
  3. 8
      Resources/Newtonsoft.Json-for-Unity.Converters.asset.meta
  4. 8
      Sample.meta
  5. 8
      Sample/MathGraph.meta
  6. 8
      Sample/MathGraph/Editor.meta
  7. 22
      Sample/MathGraph/Editor/MathEditor.cs
  8. 14
      Sample/MathGraph/Editor/MathEditor.cs.meta
  9. 9
      Sample/MathGraph/Editor/MathGraphView.cs
  10. 11
      Sample/MathGraph/Editor/MathGraphView.cs.meta
  11. 15
      Sample/MathGraph/Editor/NodeAttribute Editor Config.asset
  12. 8
      Sample/MathGraph/Editor/NodeAttribute Editor Config.asset.meta
  13. 10
      Sample/MathGraph/MathGraph.cs
  14. 11
      Sample/MathGraph/MathGraph.cs.meta
  15. 23
      Sample/MathGraph/New MathGraph.asset
  16. 8
      Sample/MathGraph/New MathGraph.asset.meta
  17. 10
      Sample/TestExposedReference.cs
  18. 3
      Sample/TestExposedReference.cs.meta
  19. 8
      TNodeCore/Editor/IGraphEditor.cs
  20. 3
      TNodeCore/Editor/IGraphEditor.cs.meta
  21. 5
      TNodeCore/Editor/NodeGraphView/IBaseDataGraphView.cs
  22. 76
      TNodeCore/Editor/Serialization/NodeDataWrapper.cs
  23. 75
      TNodeGraphViewImpl/Editor/GraphEditor.cs
  24. 11
      TNodeGraphViewImpl/Editor/NodeGraphView/DataGraphView.cs

@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 630fb8569cca3804a80f2fb55f7890f2
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,162 +0,0 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ce56e4dbb13e1644aa983b6dd170e4a7, type: 3}
m_Name: Newtonsoft.Json-for-Unity.Converters
m_EditorClassIdentifier:
useUnityContractResolver: 1
useAllOutsideConverters: 0
outsideConverters:
- enabled: 0
converterName: TNode.JsonSerialize.NodeDataConverter
settings: []
- enabled: 0
converterName: TNode.JsonSerialize.UnityObjectConverter
settings: []
- enabled: 0
converterName: TNode.JsonSerialize.Vector3Converter
settings: []
useAllUnityConverters: 1
unityConverters:
- enabled: 1
converterName: Newtonsoft.Json.UnityConverters.AI.NavMesh.NavMeshQueryFilterConverter
settings: []
- enabled: 1
converterName: Newtonsoft.Json.UnityConverters.AI.NavMesh.NavMeshTriangulationConverter
settings: []
- enabled: 1
converterName: Newtonsoft.Json.UnityConverters.Camera.CullingGroupEventConverter
settings: []
- enabled: 1
converterName: Newtonsoft.Json.UnityConverters.Geometry.BoundsConverter
settings: []
- enabled: 1
converterName: Newtonsoft.Json.UnityConverters.Geometry.BoundsIntConverter
settings: []
- enabled: 1
converterName: Newtonsoft.Json.UnityConverters.Geometry.PlaneConverter
settings: []
- enabled: 1
converterName: Newtonsoft.Json.UnityConverters.Geometry.RectConverter
settings: []
- enabled: 1
converterName: Newtonsoft.Json.UnityConverters.Geometry.RectIntConverter
settings: []
- enabled: 1
converterName: Newtonsoft.Json.UnityConverters.Geometry.RectOffsetConverter
settings: []
- enabled: 1
converterName: Newtonsoft.Json.UnityConverters.Hashing.Hash128Converter
settings: []
- enabled: 1
converterName: Newtonsoft.Json.UnityConverters.Math.Color32Converter
settings: []
- enabled: 1
converterName: Newtonsoft.Json.UnityConverters.Math.ColorConverter
settings: []
- enabled: 1
converterName: Newtonsoft.Json.UnityConverters.Math.Matrix4x4Converter
settings: []
- enabled: 1
converterName: Newtonsoft.Json.UnityConverters.Math.QuaternionConverter
settings: []
- enabled: 1
converterName: Newtonsoft.Json.UnityConverters.Math.SphericalHarmonicsL2Converter
settings: []
- enabled: 1
converterName: Newtonsoft.Json.UnityConverters.Math.Vector2Converter
settings: []
- enabled: 1
converterName: Newtonsoft.Json.UnityConverters.Math.Vector2IntConverter
settings: []
- enabled: 1
converterName: Newtonsoft.Json.UnityConverters.Math.Vector3Converter
settings: []
- enabled: 1
converterName: Newtonsoft.Json.UnityConverters.Math.Vector3IntConverter
settings: []
- enabled: 1
converterName: Newtonsoft.Json.UnityConverters.Math.Vector4Converter
settings: []
- enabled: 1
converterName: Newtonsoft.Json.UnityConverters.NativeArray.NativeArrayConverter
settings: []
- enabled: 1
converterName: Newtonsoft.Json.UnityConverters.Physics.JointDriveConverter
settings: []
- enabled: 1
converterName: Newtonsoft.Json.UnityConverters.Physics.JointLimitsConverter
settings: []
- enabled: 1
converterName: Newtonsoft.Json.UnityConverters.Physics.SoftJointLimitConverter
settings: []
- enabled: 1
converterName: Newtonsoft.Json.UnityConverters.Physics2D.ColliderDistance2DConverter
settings: []
- enabled: 1
converterName: Newtonsoft.Json.UnityConverters.Physics2D.ContactFilter2DConverter
settings: []
- enabled: 1
converterName: Newtonsoft.Json.UnityConverters.Random.RandomStateConverter
settings: []
- enabled: 1
converterName: Newtonsoft.Json.UnityConverters.Scripting.LayerMaskConverter
settings: []
- enabled: 1
converterName: Newtonsoft.Json.UnityConverters.Scripting.RangeIntConverter
settings: []
useAllJsonNetConverters: 1
jsonNetConverters:
- enabled: 1
converterName: Newtonsoft.Json.Converters.StringEnumConverter
settings: []
- enabled: 1
converterName: Newtonsoft.Json.Converters.VersionConverter
settings: []
- enabled: 0
converterName: Newtonsoft.Json.Converters.BinaryConverter
settings: []
- enabled: 0
converterName: Newtonsoft.Json.Converters.BsonObjectIdConverter
settings: []
- enabled: 0
converterName: Newtonsoft.Json.Converters.DataSetConverter
settings: []
- enabled: 0
converterName: Newtonsoft.Json.Converters.DataTableConverter
settings: []
- enabled: 0
converterName: Newtonsoft.Json.Converters.DiscriminatedUnionConverter
settings: []
- enabled: 0
converterName: Newtonsoft.Json.Converters.EntityKeyMemberConverter
settings: []
- enabled: 0
converterName: Newtonsoft.Json.Converters.ExpandoObjectConverter
settings: []
- enabled: 0
converterName: Newtonsoft.Json.Converters.IsoDateTimeConverter
settings: []
- enabled: 0
converterName: Newtonsoft.Json.Converters.JavaScriptDateTimeConverter
settings: []
- enabled: 0
converterName: Newtonsoft.Json.Converters.KeyValuePairConverter
settings: []
- enabled: 0
converterName: Newtonsoft.Json.Converters.RegexConverter
settings: []
- enabled: 0
converterName: Newtonsoft.Json.Converters.UnixDateTimeConverter
settings: []
- enabled: 0
converterName: Newtonsoft.Json.Converters.XmlNodeConverter
settings: []

@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 466d3febdbd656c4f9728b1116b1564f
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 18f38c39496afae47ab40fb512c3ce7c
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 23ebabfc8f40d2c4689dc4ec9a5786d5
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 73ee98eea19fa9b42b9c7990a8161d56
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,22 +0,0 @@
using TNode.Editor;
using UnityEditor;
using UnityEditor.Callbacks;
using UnityEditor.Experimental.GraphView;
using UnityEngine;
using UnityEngine.UIElements;
using System;
public class MathEditor : GraphEditor<MathGraph>{
[OnOpenAsset]
public static bool OnOpenAsset(int instanceID, int line){
var graph = EditorUtility.InstanceIDToObject(instanceID) as MathGraph;
if (graph != null)
{
var wnd = GetWindow<MathEditor>();
wnd.titleContent = new GUIContent("MathGraph Editor");
wnd.CreateGUI();
wnd.GraphView.Data = graph;
return true;
}
return false;
}
}

@ -1,14 +0,0 @@
fileFormatVersion: 2
guid: c9041cb574597424fa4124edc3f99af1
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences:
- m_ViewDataDictionary: {instanceID: 0}
- mVisualTreeAsset: {fileID: 9197481963319205126, guid: b67f6dcbe2361b649ad2b7845207321b, type: 3}
- graphEditorData: {fileID: 11400000, guid: f582a62cc8e00144f97b4dff1f9ba8cc, type: 2}
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

@ -1,9 +0,0 @@
using TNodeCore.Attribute;
using TNodeGraphViewImpl.Editor.NodeGraphView;
[ViewComponent]
public class MathGraphView : BaseDataGraphView<MathGraph>{
}

@ -1,11 +0,0 @@
fileFormatVersion: 2
guid: 7f4d84b648626d24eb29bfeb81c85e3f
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

@ -1,15 +0,0 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 99ad0af56b40495cb6bd6165e652266c, type: 3}
m_Name: NodeAttribute Editor Config
m_EditorClassIdentifier:
nodesData: []

@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: f582a62cc8e00144f97b4dff1f9ba8cc
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

@ -1,10 +0,0 @@
using UnityEngine;
using UnityEditor;
using System;
using TNodeCore.Models;
[CreateAssetMenu(fileName = "New MathGraph", menuName = "TNode/MathGraph")]
[Serializable]
public class MathGraph : GraphData{
}

@ -1,11 +0,0 @@
fileFormatVersion: 2
guid: 73baeb2c71a23da4ca06e3e3e52d5a78
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

@ -1,23 +0,0 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 73baeb2c71a23da4ca06e3e3e52d5a78, type: 3}
m_Name: New MathGraph
m_EditorClassIdentifier:
nodes: []
nodeLinks: []
entryNode:
rid: -2
references:
version: 2
RefIds:
- rid: -2
type: {class: , ns: , asm: }

@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 4b23c513fb78ea44b8a11a0bf7c8479e
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

@ -1,10 +0,0 @@
using UnityEngine;
namespace Sample{
// Create at Asset/Test
[CreateAssetMenu(fileName = "NewData", menuName = "Test/Data", order = 1)]
public class TestExposedReference:ScriptableObject{
public ExposedReference<Camera> camera;
public ExposedReference<GameObject> go;
}
}

@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: fed858872d394fb8896d48178f8a7d78
timeCreated: 1657862979

@ -0,0 +1,8 @@
using TNodeCore.Editor.NodeGraphView;
namespace TNodeCore.Editor{
public interface IGraphEditor{
public void SetGraphView(IBaseDataGraphView graphView);
public IBaseDataGraphView GetGraphView();
}
}

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: d84e826fe49d4314b8cc1241faf38fd9
timeCreated: 1657944822

@ -9,7 +9,8 @@ namespace TNodeCore.Editor.NodeGraphView{
public void CreateBlackboard();
public GraphData GetGraphData();
public BlackboardData GetBlackboardData();
void SetGraphData(GraphData graph);
}
}

@ -4,46 +4,46 @@ using TNodeCore.Models;
using UnityEngine;
namespace TNodeCore.Editor.Serialization{
[Obsolete]
public class NodeDataWrapper<T> : ScriptableObject where T : NodeData{
public T Data;
private static readonly Dictionary<T,NodeDataWrapper<T>> Cache = new ();
public event Action<NodeDataWrapper<T>> OnValueChanged;
public static NodeDataWrapper<T> Get(T data){
if(Cache.ContainsKey(data)){
return Cache[data];
}
var wrapper = ScriptableObject.CreateInstance<NodeDataWrapper<T>>();
Cache.Add(data,wrapper);
return wrapper;
}
public NodeDataWrapper(T data){
this.Data = data;
}
public void SetValue(string path, object value){
var fieldInfo = Data.GetType().GetField(path);
fieldInfo.SetValue(Data,value);
OnValueChanged?.Invoke(this);
}
public object GetValue(string path){
var fieldInfo = Data.GetType().GetField(path);
return fieldInfo.GetValue(Data);
}
public static implicit operator T(NodeDataWrapper<T> wrapper){
if (wrapper == null)
return null;
return wrapper.Data;
}
public static implicit operator NodeDataWrapper<T>(T unWrapper){
if (unWrapper == null)
return null;
return Get(unWrapper);
}
}
// public class NodeDataWrapper<T> : ScriptableObject where T : NodeData{
// public T Data;
// private static readonly Dictionary<T,NodeDataWrapper<T>> Cache = new ();
// public event Action<NodeDataWrapper<T>> OnValueChanged;
// public static NodeDataWrapper<T> Get(T data){
// if(Cache.ContainsKey(data)){
// return Cache[data];
// }
// var wrapper = ScriptableObject.CreateInstance<NodeDataWrapper<T>>();
// Cache.Add(data,wrapper);
// return wrapper;
// }
// public NodeDataWrapper(T data){
// this.Data = data;
// }
//
// public void SetValue(string path, object value){
// var fieldInfo = Data.GetType().GetField(path);
// fieldInfo.SetValue(Data,value);
// OnValueChanged?.Invoke(this);
// }
//
// public object GetValue(string path){
// var fieldInfo = Data.GetType().GetField(path);
// return fieldInfo.GetValue(Data);
// }
// public static implicit operator T(NodeDataWrapper<T> wrapper){
// if (wrapper == null)
// return null;
// return wrapper.Data;
//
// }
// public static implicit operator NodeDataWrapper<T>(T unWrapper){
// if (unWrapper == null)
// return null;
// return Get(unWrapper);
// }
// }
public class NodeDataWrapper:DataWrapper<NodeDataWrapper,NodeData>{
}

@ -1,25 +1,60 @@
using Codice.CM.Common;
using TNode.Editor.Inspector;
using System;
using TNodeCore.Editor;
using TNodeCore.Editor.EditorPersistence;
using TNodeCore.Editor.NodeGraphView;
using TNodeCore.Models;
using TNodeGraphViewImpl.Editor.Cache;
using TNodeGraphViewImpl.Editor.NodeGraphView;
using UnityEditor;
using UnityEditor.Experimental.GraphView;
using UnityEngine;
using UnityEngine.Serialization;
using UnityEngine.UIElements;
namespace TNode.Editor{
namespace TNodeGraphViewImpl.Editor{
public abstract class GraphEditor<T> : EditorWindow where T:GraphData{
// public class SelectGraphWindow : EditorWindow{
// public EditorWindow parent;
// public Type graphType;
// public static void ShowWindow<T> (GraphEditor<T> parent) where T:GraphData{
// var window = GetWindow<SelectGraphWindow>();
// window.graphType = typeof(T);
// window.Show();
// window.parent = parent;
// }
// private void OnGUI(){
//
// if(GUILayout.Button("Create An Graph")){
// //Add a save file dialog to save the graph
// //Create the graph
// var graphAsset = ScriptableObject.CreateInstance(graphType);
// var path = EditorUtility.SaveFilePanel("Save Graph", "", "", "asset");
// //Save the graph
// AssetDatabase.CreateAsset(graphAsset, path);
// AssetDatabase.SaveAssets();
// AssetDatabase.Refresh();
// //Load the graph
// var graph = AssetDatabase.LoadAssetAtPath<ScriptableObject>(path) as GraphData;
// var graphEditor = parent as IGraphEditor;
// if (graphEditor.GetGraphView() != null){
// graphEditor.GetGraphView().SetGraphData(graph);
// Debug.Log(graph);
// }
// }
// //Drag and drop a graph asset to load it
// if(Event.current.type == EventType.DragUpdated){
// DragAndDrop.visualMode = DragAndDropVisualMode.Copy;
// Event.current.Use();
// }
// }
// }
public abstract class GraphEditor<T> : EditorWindow,IGraphEditor where T:GraphData{
protected BaseDataGraphView<T> GraphView;
[SerializeField]
private VisualTreeAsset mVisualTreeAsset = default;
//Persist editor data ,such as node position,node size ,etc ,in this script object
[FormerlySerializedAs("nodeEditorData")] public GraphEditorData graphEditorData;
private bool _windowShowed=false;
public void CreateGUI(){
// Each editor window contains a root VisualElement object
@ -28,12 +63,25 @@ namespace TNode.Editor{
// Instantiate UXML
VisualElement labelFromUXML = mVisualTreeAsset.Instantiate();
root.Add(labelFromUXML);
BuildGraphView();
DefineGraphEditorActions();
OnCreate();
}
public void Update(){
if (GraphView == null) return;
if (GraphView.Data != null) return;
if (_windowShowed==false){
_windowShowed = true;
}
}
public void Setup(T graphData){
GraphView.Owner = this;
GraphView.Data = graphData;
}
private void BuildGraphView(){
GraphView = NodeEditorExtensions.CreateViewComponentFromBaseType<BaseDataGraphView<T>>();
rootVisualElement.Add(GraphView);
@ -75,6 +123,13 @@ namespace TNode.Editor{
protected virtual void OnCreate(){
}
public void SetGraphView(IBaseDataGraphView graphView){
GraphView = graphView as BaseDataGraphView<T>;
}
public IBaseDataGraphView GetGraphView(){
return GraphView;
}
}
}

@ -1,11 +1,7 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using TNode.Editor;
using TNode.Editor.Inspector;
using TNode.Editor.NodeViews;
using TNode.Editor.Search;
using TNodeCore.Editor.Blackboard;
using TNodeCore.Editor.EditorPersistence;
@ -14,7 +10,6 @@ using TNodeCore.Editor.Tools.NodeCreator;
using TNodeCore.Models;
using TNodeGraphViewImpl.Editor.Cache;
using TNodeGraphViewImpl.Editor.GraphBlackboard;
using TNodeGraphViewImpl.Editor.GraphBlackboard.BlackboardProperty;
using TNodeGraphViewImpl.Editor.NodeViews;
using UnityEditor;
using UnityEditor.Experimental.GraphView;
@ -116,7 +111,6 @@ namespace TNodeGraphViewImpl.Editor.NodeGraphView{
}
private void OnDragUpdated(DragUpdatedEvent evt){
Debug.Log(evt);
//check if the drag data is BlackboardField
@ -376,6 +370,11 @@ namespace TNodeGraphViewImpl.Editor.NodeGraphView{
public BlackboardData GetBlackboardData(){
return this._data.blackboardData;
}
public void SetGraphData(GraphData graph){
Data = graph as T;
}
#endregion
}

Loading…
Cancel
Save