From 61abd31d12039be10ed6698aa57d6b3d3a85e062 Mon Sep 17 00:00:00 2001 From: taoria <445625470@qq.com> Date: Tue, 30 Aug 2022 22:42:55 +0800 Subject: [PATCH] fix: fix bug of reset --- Samples/New HelloGraph.asset | 54 ++++++++++++------- Samples/Nodes/AddNode.cs | 2 +- TNodeCore/Runtime/Logger/NodeLogger.cs | 2 +- .../Runtime/RuntimeCache/RuntimeCache.cs | 9 ++-- .../Runtime/RuntimeModels/RuntimeNode.cs | 2 +- TNodeCore/Runtime/Tools/GraphTool.cs | 2 +- .../GraphWatcherView/GraphWatcherView.cs | 3 ++ 7 files changed, 49 insertions(+), 25 deletions(-) diff --git a/Samples/New HelloGraph.asset b/Samples/New HelloGraph.asset index 27e241f..a0407a7 100644 --- a/Samples/New HelloGraph.asset +++ b/Samples/New HelloGraph.asset @@ -18,6 +18,7 @@ MonoBehaviour: - id: 2 - id: 3 - id: 4 + - id: 5 nodeLinks: - inPort: portEntryName: A @@ -38,17 +39,17 @@ MonoBehaviour: portEntryName: C nodeDataId: 4300534d-023d-4b56-a0cb-39e197e68845 - inPort: - portEntryName: A + portEntryName: B nodeDataId: 926f2eea-3403-4663-88bd-7ed16ce029fa outPort: - portEntryName: Bigger - nodeDataId: f236a611-cc64-4fce-88d2-40baf7f4a490 + portEntryName: Value + nodeDataId: 7faced8f-0880-4fc3-b26b-aac148024af8 blackboardData: - id: 5 + id: 6 sceneReference: editorModels: [] graphViewModel: - id: 6 + id: 7 references: version: 1 00000000: @@ -57,7 +58,7 @@ MonoBehaviour: positionInView: serializedVersion: 2 x: 674 - y: 261 + y: 239 width: 0 height: 0 id: 6dba1aab-0db9-45a0-b3f7-e8fe9c47c168 @@ -73,8 +74,8 @@ MonoBehaviour: data: positionInView: serializedVersion: 2 - x: 674 - y: 330 + x: 676 + y: 281 width: 0 height: 0 id: 5fd53e10-e727-45e3-8458-04a6ec8581c4 @@ -90,8 +91,8 @@ MonoBehaviour: data: positionInView: serializedVersion: 2 - x: 784 - y: 252 + x: 786 + y: 228 width: 0 height: 0 id: 4300534d-023d-4b56-a0cb-39e197e68845 @@ -103,8 +104,8 @@ MonoBehaviour: data: positionInView: serializedVersion: 2 - x: 917 - y: 228 + x: 928 + y: 189 width: 0 height: 0 id: f236a611-cc64-4fce-88d2-40baf7f4a490 @@ -116,8 +117,8 @@ MonoBehaviour: data: positionInView: serializedVersion: 2 - x: 1145.4003 - y: 188.50003 + x: 1168 + y: 188 width: 0 height: 0 id: 926f2eea-3403-4663-88bd-7ed16ce029fa @@ -125,6 +126,23 @@ MonoBehaviour: entryPoint: 0 isTest: 0 00000005: + type: {class: BlackboardDragNode, ns: TNodeCore.Runtime.Models, asm: Taoria.TNodeCore.Runtime} + data: + positionInView: + serializedVersion: 2 + x: 1056.5 + y: 315 + width: 0 + height: 0 + id: 7faced8f-0880-4fc3-b26b-aac148024af8 + nodeName: + entryPoint: 0 + isTest: 0 + blackboardDragTypeString: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + blackDragData: Value.0 + isListElement: 1 + 00000006: type: {class: HelloBlackboard, ns: TNode.Samples, asm: Assembly-CSharp} data: positionInView: @@ -137,9 +155,9 @@ MonoBehaviour: HelloString: HelloGameObject: {fileID: 0} Value: - - 24.41 + - 23.9 - 102.1 - 00000006: + 00000007: type: {class: GraphViewModel, ns: TNode.TNodeCore.Editor.Models, asm: Taoria.TNodeCore.Runtime} data: positionInView: @@ -149,6 +167,6 @@ MonoBehaviour: width: 0 height: 0 id: - persistScale: 0.8695652 - persistOffset: {x: -125, y: 184} + persistScale: 0.57175326 + persistOffset: {x: -366, y: 193} isBlackboardOn: 1 diff --git a/Samples/Nodes/AddNode.cs b/Samples/Nodes/AddNode.cs index e042987..d4f52da 100644 --- a/Samples/Nodes/AddNode.cs +++ b/Samples/Nodes/AddNode.cs @@ -12,7 +12,7 @@ namespace Samples.Nodes{ [Output] public float C => A + B; public override void Process(){ - + this.Log($"{C}"); } } } \ No newline at end of file diff --git a/TNodeCore/Runtime/Logger/NodeLogger.cs b/TNodeCore/Runtime/Logger/NodeLogger.cs index 5b43dd8..e31cc46 100644 --- a/TNodeCore/Runtime/Logger/NodeLogger.cs +++ b/TNodeCore/Runtime/Logger/NodeLogger.cs @@ -10,7 +10,7 @@ namespace TNodeCore.Runtime{ if (!Loggers.ContainsKey(t.id)) return; var nodeLoggerImpl = Loggers[t.id]; nodeLoggerImpl.Log(message); - Debug.Log(message); + } } diff --git a/TNodeCore/Runtime/RuntimeCache/RuntimeCache.cs b/TNodeCore/Runtime/RuntimeCache/RuntimeCache.cs index 3a94817..beeca6f 100644 --- a/TNodeCore/Runtime/RuntimeCache/RuntimeCache.cs +++ b/TNodeCore/Runtime/RuntimeCache/RuntimeCache.cs @@ -29,8 +29,11 @@ namespace TNodeCore.Runtime.RuntimeCache{ Set = (Action)Delegate.CreateDelegate(typeof(Action), null, setter); if (Set != null){ var dummy = Activator.CreateInstance(); - if (Get != null) _defaultValue = Get(dummy); - _resetFunc = (obj) => { + + if (Get != null) + _defaultValue = Get(dummy); + + _resetFunc += (obj) => { Set(obj, _defaultValue); }; } @@ -59,7 +62,7 @@ namespace TNodeCore.Runtime.RuntimeCache{ public void Reset(object model){ //Get - _resetFunc((T1)model); + _resetFunc?.Invoke((T1)model); } public Type Type{ get; set; } diff --git a/TNodeCore/Runtime/RuntimeModels/RuntimeNode.cs b/TNodeCore/Runtime/RuntimeModels/RuntimeNode.cs index 99930a1..8c57fb2 100644 --- a/TNodeCore/Runtime/RuntimeModels/RuntimeNode.cs +++ b/TNodeCore/Runtime/RuntimeModels/RuntimeNode.cs @@ -124,7 +124,7 @@ namespace TNodeCore.Runtime{ public void ResetPortValue(){ foreach (var modelPortAccessor in _portAccessors){ - modelPortAccessor.Value.Reset(this); + modelPortAccessor.Value.Reset(this.NodeData); } } public List GetInputNodesId(){ diff --git a/TNodeCore/Runtime/Tools/GraphTool.cs b/TNodeCore/Runtime/Tools/GraphTool.cs index 8e9a293..da99b14 100644 --- a/TNodeCore/Runtime/Tools/GraphTool.cs +++ b/TNodeCore/Runtime/Tools/GraphTool.cs @@ -298,7 +298,7 @@ namespace TNode.TNodeCore.Runtime.Tools{ var cachedKey = $"{outNode.NodeData.id}-{nodeLink.inPort.portEntryName}"; var outValue = OutputCached.ContainsKey(cachedKey) ? OutputCached[cachedKey] : outNode.GetOutput(nodeLink.outPort.portEntryName); - Debug.Log(outValue); + if (_isCachingOutput){ OutputCached[cachedKey] = outValue; } diff --git a/TNodeGraphViewImpl/Editor/GraphWatcherView/GraphWatcherView.cs b/TNodeGraphViewImpl/Editor/GraphWatcherView/GraphWatcherView.cs index eae51d4..855ba95 100644 --- a/TNodeGraphViewImpl/Editor/GraphWatcherView/GraphWatcherView.cs +++ b/TNodeGraphViewImpl/Editor/GraphWatcherView/GraphWatcherView.cs @@ -49,6 +49,9 @@ namespace TNodeGraphViewImpl.Editor.GraphWatcherView{ _highlightedNode.style.borderRightWidth = _highlightedNode.style.borderTopWidth = 0; } runtimeNodeGraph.ResetState(); + foreach (var runtimeNode in runtimeNodeGraph.GetRuntimeNodes()){ + runtimeNode.ResetPortValue(); + } } };