From 8c58504885bee9a3174d2eda38b2b243e95082a6 Mon Sep 17 00:00:00 2001 From: taoria <445625470@qq.com> Date: Mon, 4 Jul 2022 22:01:24 +0800 Subject: [PATCH] 1.hi! --- TNode/Attribute/BlackboardSection.cs | 16 ++++++++++++++++ TNode/Attribute/BlackboardSection.cs.meta | 3 +++ TNode/Editor/BaseViews/DataGraphView.cs | 13 +++++++++++-- TNode/Editor/GraphBlackboard.meta | 3 +++ TNode/Editor/GraphBlackboard/GraphBlackboard.cs | 10 ++++++++++ .../GraphBlackboard/GraphBlackboard.cs.meta | 3 +++ TNode/Editor/Search.meta | 3 +++ .../Search/BlackboardSearchWindowProvider.cs | 5 +++++ .../BlackboardSearchWindowProvider.cs.meta | 3 +++ .../NodeSearchWindowProvider.cs} | 4 ++-- .../NodeSearchWindowProvider.cs.meta} | 0 11 files changed, 59 insertions(+), 4 deletions(-) create mode 100644 TNode/Attribute/BlackboardSection.cs create mode 100644 TNode/Attribute/BlackboardSection.cs.meta create mode 100644 TNode/Editor/GraphBlackboard.meta create mode 100644 TNode/Editor/GraphBlackboard/GraphBlackboard.cs create mode 100644 TNode/Editor/GraphBlackboard/GraphBlackboard.cs.meta create mode 100644 TNode/Editor/Search.meta create mode 100644 TNode/Editor/Search/BlackboardSearchWindowProvider.cs create mode 100644 TNode/Editor/Search/BlackboardSearchWindowProvider.cs.meta rename TNode/Editor/{SearchWindowProvider.cs => Search/NodeSearchWindowProvider.cs} (94%) rename TNode/Editor/{SearchWindowProvider.cs.meta => Search/NodeSearchWindowProvider.cs.meta} (100%) diff --git a/TNode/Attribute/BlackboardSection.cs b/TNode/Attribute/BlackboardSection.cs new file mode 100644 index 0000000..bbefd7a --- /dev/null +++ b/TNode/Attribute/BlackboardSection.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using JetBrains.Annotations; + +namespace TNode.Attribute{ + + /// + /// Use this attribute to declare a blackboard section ,a blackboard section is a group of variables with same types + /// + [AttributeUsage(AttributeTargets.Field, AllowMultiple = false, Inherited = false)] + [BaseTypeRequired(typeof(List<>))] + + public class BlackboardSection:System.Attribute{ + + } +} \ No newline at end of file diff --git a/TNode/Attribute/BlackboardSection.cs.meta b/TNode/Attribute/BlackboardSection.cs.meta new file mode 100644 index 0000000..1794987 --- /dev/null +++ b/TNode/Attribute/BlackboardSection.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 773d073006dc4dd488e18b38165efd5a +timeCreated: 1656942977 \ No newline at end of file diff --git a/TNode/Editor/BaseViews/DataGraphView.cs b/TNode/Editor/BaseViews/DataGraphView.cs index 31c596b..fc11fe7 100644 --- a/TNode/Editor/BaseViews/DataGraphView.cs +++ b/TNode/Editor/BaseViews/DataGraphView.cs @@ -111,7 +111,7 @@ namespace TNode.Editor.BaseViews{ private T _data; private bool _isInspectorOn; - private SearchWindowProvider _searchWindowProvider; + private NodeSearchWindowProvider _nodeSearchWindowProvider; private NodeInspector _nodeInspector; public GraphEditor Owner; private Dictionary _nodeDict = new(); @@ -158,7 +158,7 @@ namespace TNode.Editor.BaseViews{ evt.menu.AppendAction("Create Node", dma => { var dmaPos = dma.eventInfo.mousePosition+editorPosition; SearchWindowContext searchWindowContext = new SearchWindowContext(dmaPos,200,200); - var searchWindow = ScriptableObject.CreateInstance(); + var searchWindow = ScriptableObject.CreateInstance(); searchWindow.Setup(typeof(T),this,Owner); SearchWindow.Open(searchWindowContext, searchWindow); }); @@ -234,6 +234,15 @@ namespace TNode.Editor.BaseViews{ public void CreateBlackBoard(){ var blackboard = new Blackboard(); + //Blackboard add "Add Node" button + blackboard.Add(new BlackboardSection(){ + title = "Hello World", + }); + blackboard.addItemRequested = (item) => { + //Create a sub window for the blackboard to show the selection + var subWindow = ScriptableObject.CreateInstance(); + }; + //Set black board to left side of the view blackboard.SetPosition(new Rect(0,0,200,600)); this.Add(blackboard); diff --git a/TNode/Editor/GraphBlackboard.meta b/TNode/Editor/GraphBlackboard.meta new file mode 100644 index 0000000..5c57522 --- /dev/null +++ b/TNode/Editor/GraphBlackboard.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 476d14ab24734294b206f16006438e60 +timeCreated: 1656941713 \ No newline at end of file diff --git a/TNode/Editor/GraphBlackboard/GraphBlackboard.cs b/TNode/Editor/GraphBlackboard/GraphBlackboard.cs new file mode 100644 index 0000000..2ade88a --- /dev/null +++ b/TNode/Editor/GraphBlackboard/GraphBlackboard.cs @@ -0,0 +1,10 @@ +using UnityEditor.Experimental.GraphView; + +namespace TNode.Editor.GraphBlackboard{ + /// + /// Implement this class to create graph black board for specified graph + /// + public class GraphBlackboard:Blackboard{ + + } +} \ No newline at end of file diff --git a/TNode/Editor/GraphBlackboard/GraphBlackboard.cs.meta b/TNode/Editor/GraphBlackboard/GraphBlackboard.cs.meta new file mode 100644 index 0000000..3b9d3e8 --- /dev/null +++ b/TNode/Editor/GraphBlackboard/GraphBlackboard.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 285d836db7e04e2f989069277fd1853a +timeCreated: 1656941728 \ No newline at end of file diff --git a/TNode/Editor/Search.meta b/TNode/Editor/Search.meta new file mode 100644 index 0000000..c1c4f31 --- /dev/null +++ b/TNode/Editor/Search.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 4fe6a069e0cc45158b4749dbdb7fd399 +timeCreated: 1656942698 \ No newline at end of file diff --git a/TNode/Editor/Search/BlackboardSearchWindowProvider.cs b/TNode/Editor/Search/BlackboardSearchWindowProvider.cs new file mode 100644 index 0000000..53dfcbb --- /dev/null +++ b/TNode/Editor/Search/BlackboardSearchWindowProvider.cs @@ -0,0 +1,5 @@ +namespace TNode.Editor{ + public class BlackboardSearchWindowProvider{ + + } +} \ No newline at end of file diff --git a/TNode/Editor/Search/BlackboardSearchWindowProvider.cs.meta b/TNode/Editor/Search/BlackboardSearchWindowProvider.cs.meta new file mode 100644 index 0000000..56fdf8c --- /dev/null +++ b/TNode/Editor/Search/BlackboardSearchWindowProvider.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 73c77be1f9364a0199d95eea7e7c0101 +timeCreated: 1656942712 \ No newline at end of file diff --git a/TNode/Editor/SearchWindowProvider.cs b/TNode/Editor/Search/NodeSearchWindowProvider.cs similarity index 94% rename from TNode/Editor/SearchWindowProvider.cs rename to TNode/Editor/Search/NodeSearchWindowProvider.cs index e719cbe..58a3c1d 100644 --- a/TNode/Editor/SearchWindowProvider.cs +++ b/TNode/Editor/Search/NodeSearchWindowProvider.cs @@ -12,7 +12,7 @@ using UnityEngine; using UnityEngine.UIElements; namespace TNode.Editor{ - public class SearchWindowProvider:ScriptableObject,ISearchWindowProvider{ + public class NodeSearchWindowProvider:ScriptableObject,ISearchWindowProvider{ private Type _graphType; private GraphView _graphView; private EditorWindow _editor; @@ -58,7 +58,7 @@ namespace TNode.Editor{ return false; } - public SearchWindowProvider(){ + public NodeSearchWindowProvider(){ } } } \ No newline at end of file diff --git a/TNode/Editor/SearchWindowProvider.cs.meta b/TNode/Editor/Search/NodeSearchWindowProvider.cs.meta similarity index 100% rename from TNode/Editor/SearchWindowProvider.cs.meta rename to TNode/Editor/Search/NodeSearchWindowProvider.cs.meta