Changelog
All notable changes to this package will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
[0.9.2-preview] - 2021-04-07
Added
- Added
UxmlFactory
andUxmlTraits
toCollapseButton
to make it usable from uxml files.
Changed
- Moved the creation of the
IBlackboardGraphModel
to theStencil
. - Made the extension method
IGraphElementModel.GetAllUIs
public. - Made the members of
BlackboardSectionListPart
accessible from derived classes.
[0.9.1-preview] - 2021-03-29
Removed
DisposableStateComponentUpdater
(no longer needed)IStateComponentUpdater.BeginStateChange
andIStateComponentUpdater.EndStateChange
. SinceIStateComponentUpdater
now implementsIDisposable
, use the Disposable pattern for updaters. A newInitialize
method now replaces theBeginStateChange
.
Changed
- Renamed
StateComponent.Updater
toStateComponent.UpdateScope
.
[0.9.0-preview.2] - 2021-03-23
Added
SelectElementsCommand
ClearSelectionCommand
and to select and unselect graph view elements.ReframeGraphViewCommand
to change the graph view pan and zoom.GetPlacematMinZOrder
,GetPlacematMaxZOrder
andGetSortedPlacematModels
extension methods onIGraphModel
.GraphModel.GetEdgeType
,GraphModel.GetStickyNoteType
,GraphModel.GetPlacematType
,GraphModel.GetVariableDeclarationType
andGraphModel.GetPortalType
virtual methods used to define the type of elements to create inGraphModel.CreateEdge
,GraphModel.CreateStickyNote
,GraphModel.CreatePlacemat
,GraphModel.CreateVariableDeclaration
andGraphModel.CreatePortal
, respectively.IGraphModel.CreateGraphVariableDeclaration
can take a type parameter to create anyIVariableDeclarationModel
-derived declaration. Also provided in a generic version of the same.- Support for shortcuts defined in Unity ShortcutManager.
- Class deriving from
Stencil
must implement theToolName
property that returns a unique, human readable tool name. GraphElementModel
class as the parent class for most classes implementingIGraphElementModel
IGraphElementModel
new membersColor
,HasUserColor
andResetColor()
to customize elements colorCapbilities.Colorable
to tell anIGraphElementColor
can change color.NodeModel
andPlacematModel
have this capability by default.PortModel
now save it'sAssetModel
instead of getting it from itsNodeModel
. Assigned duringCreatePort()
ResetElementColorCommand
andChangeElementColorCommand
can be called on anyIGraphElementModel
and will check forColorable
capability.GraphElementModel
introduces versioning withVersion
for backward compatibility.VerticalPortContainerPart
created to house the vertical ports on nodes.- New Vertical Flow sample showcasing the vertical flow.
- Dirty state displayed in the window title with an *.
IChangeset
andChangesetManager
to enableIStateComponent
to manage changesets.IStateComponentUpdater
to encapsulate updates to state components.IStateObserver
for classes that observesIStateComponent
s and want to be notified of their changes.Observation
, to encapsulate an observation of anIStateComponent
by anIStateObserver
VisualElement.SafeQ
, equivalent toVisualElement.Q
but does a null check first.
Removed
ISelection
; query or use commands to modify theGraphToolState.SelectionState
instead.ISelectableGraphElement
: useIGraphElement
instead. Query the selection or use commands to modify the selection usingGraphToolState.SelectionState
instead. React to change in selection inGraphElement.UpdateElementFromModel()
instead.GraphView.OnSelectionChangedCallback
; react to selected state inGraphElement.UpdateElementFromModel()
instead.VisualElementBridge
; derive fromVisualElement
instead and use extension methods fromGraphViewStaticBridge
.- Unused classes and interface
SearchTreeEntry
,SearchTreeGroupEntry
,SearchWindowContext
,ISearchWindowProvider
andSearchWindow
. IGraphViewSelection
,GraphViewUndoRedoSelection
andPersistedSelection
; functionality is now handled bySelectionStateComponent
.ViewTransformChangedCallback
. Install an observer onReframeGraphViewCommand
instead, usingCommandDispatcher.RegisterObserver
.GraphModel.NodesByGuid
; useGraphModel.TryGetModelFromGuid()
instead.ChangePlacematLayoutCommand
andChangeStickyNoteLayoutCommand
: useChangeElementLayoutCommand
instead.ResizeFlags
andIResizableGraphElement
GraphModel.CreateNodeInternal
was merged intoGraphModel.CreateNode
NodeModel.DataTypeString
NodeModel.VariableString
VariableDeclarationModel.Create
; useGraphModel.CreateGraphVariableDeclaration()
instead.GraphModel.DuplicateGraphVariableDeclaration
has been made generic for anyIVariableDeclarationModel
.ShortcutHandler
manipulator. Replaced by callbacks on subclasses ofShortcutEventBase
events.GraphView.ShortcutHandler
andGraphView.GetShortcutDictionary()
To define new shortcuts, create a subclass ofShortcutEventBase
and add the[ToolShortcutEvent]
attribute to it. See theShortcutFrameAllEvent
class for an example. To respond to shortcuts, register a callback on the new shortcut event subclass.GraphElement.IsDeletable()
: ask model insteadGraphElement.IsResizable()
: ask model insteadGraphElement.IsDroppable()
: ask model insteadGraphElement.IsRenamable()
: ask model insteadGraphElement.IsCopiable()
: ask model insteadGraphViewBridge
; derive fromVisualElement
instead.Stencil.GetThisType()
- Remove
IVariableDeclarationMetadataModel
fromIVariableDeclarationModel
- Remove
GetMetadataModel()
andSetMetadataModel()
fromVariableDeclarationModel
UndoRedoTraversal
IEdgeModel.ResetPorts()
: Found in Basic modelEdgeModel
.- Removed the distinction between pre- and post-command observers. CommandObservers are now all executed before the command handler.
PrefixRemoveFromClassList
; usePrefixEnableInClassList
instead.
Changed
GraphToolState.PushUndo()
now saves theGraphViewStateComponent
(graph view pan and zoom), theBlackboardViewStateComponent
(blackboard variable expanded state) andSelectionStateComponent
(the current selection).GraphView.Selection
changed toGraphView.GetSelection()
.ISelection
replaced byIDragSource
.- Renamed
NodeSerializationHelpers
to `SerializationHelpers - Renamed
BoolPref.LogAllDispatchedActions
toBoolPref.LogAllDispatchedCommands
PlacematContainer.CycleDirection
moved toPlacematCommandsExtension.CycleDirection
- The
MainToolbar
USS namevseMenu
has been removed. It now has the USS classge-main-toolbar
. - All list of graph element models in
GraphModel
are now private. Use the corresponding properties andAdd...
/Remove...
to access them. IVariableDeclarationModel.VariableName
was replaced byIVariableDeclarationModel.GetVariableName()
CreateGraphVariableDeclarationCommand
constructor can take a type parameter to create anyIVariableDeclarationModel
-derived declaration.GraphModel.GetVariableDeclarationType
was renamed toGraphModel.GetDefaultVariableDeclarationType
PromptSearcherEvent
moved from the internal bridge to the main code base.- Tools need to call
ShortcutHelper.RegisterDefaultShortcuts()
to use the default shortcuts provided by GTF. We suggest adding an[InitializeOnLoad]
static method in the tool editor window class. CollapisbleInOutNode
now has a top and bottom container for vertical ports.InOutPortContainerPart
only handles horizontal ports.NodeModel.DeletePort
has been deprecated. The default behavior (withremoveFromOrderedPorts = false
) did not actually delete any ports. UseNodeModel.DisconnectPort
instead. In the next release,NodeModel.DeletePort
will lost its extra parameter and will always delete the ports.INodeModel.CreatePort
now takes in anOrientation
parameter.INodeModel.AddInputPort
,INodeModel.AddOutputPort
,INodeModel.AddPlaceHolderPort
,INodeModel.AddDataInputPort
,INodeModel.AddDataOutputPort
,INodeModel.AddExecutionInputPort
andINodeModel.AddExecutionOutputPort
now all take in an optionalOrientation
parameter.- Moved and renamed
GraphViewBridge.contentContainer
toGraphView.ContentContainer
- Moved and renamed
GraphViewBridge.viewTransform
toGraphView.ViewTransform
- Moved and renamed
GraphViewBridge.redrawn
toGraphView.Redrawn
IPortNode
renamed toIPortNodeModel
IInOutPortsNode
renamed toIInputOutputPortsNodeModel
ISingleInputPortNode
renamed toISingleInputPortNodeModel
ISingleOutputPortNode
renamed toISingleOutputPortNodeModel
IReorderableEdgesPort
renamed toIReorderableEdgesPortModel
- Moved Debugging plugin (tracing) from
VisualScripting
toPlugins
directory. - Moved Debugging plugin(tracing) to
UnityEditor.GraphtoolFundation.Plugins.Debugging
namespace. - Renamed Debugging
Port
toDebuggingPort
. - Port height can be more than 24px in height.
EditorStateComponent
renamed toStateComponent
- State components interface is now read-only. Updates to state components should go through their Updater.
- UI update process (most of what was in
GraphViewEditorWindow.Update()
) was refactored into implementations ofIStateObserver
:GraphView.Updater
,BlackboardUpdateObserver
,GraphProcessingStatusObserver
,SidePanelObserver
, etc. - The graph processing was refactored into the
AutomaticGraphProcessor
observer. - Graph processing error badges are not part of the
IGraphModel
anymore. They are held by theGraphProcessingStateComponent
.
Fixed
- PortContainer instantiate ports UI when it is built.
CollapsibleInOutNode.Progress
is now able to find the progress bar.- CopyPasteData only use interfaces
[0.8.2-preview] - 2021-02-18
Fixed
- Clear the models to select after rebuilding the UI.
- CalculateRectToFitAll works edges drawn using something else than the Edge class.
[0.8.1-preview] - 2021-02-16
Fixed
- Constant migration in nodes
[0.8.0-preview] - 2021-02-08
Added
- Obsolete names on
Enumeration
- Allow dragging multiple edges from the same port.
class BasicModel.GraphTemplate<TStencil>
which provides a defaultIGraphTemplate
implementationDefaultSearcherDatabaseProvider
which provides a defaultISearcherDatabaseProvider
implementationDropTarget
abstractModelUI
class handling drag and drop from SelectionDraggerIDragAndDropHandler
interface demonstrating ability to handle drag and drop events
Removed
GtfoGraphView
class was merged intoGraphView
GtfoEditorWindow
class was merged intoGraphViewEditorWindow
VariableType
enumITranslator.TranslateAndCompile
ITranslator.CanCompile
RequestCompilationAction
(moved to Visual Scripting ECS package)IGraphAssetModel.SourceFilePath
IDroppable
interfaceIDropTarget
. Use new classDropTarget
to catchGraphView
mouse drags as drag and drop instead of move.Resizer
Changed
GtfoWindow.GetShortcutDictionary()
is no longer abstract. It is a virtual that provides a default dictionary.IGraphElement
renamed toIModelUI
GraphElement
andPort
now inherits from new classModelUI
- Renamed
State
toGraphToolState
- Renamed
Store
toCommandDispatcher
- Renamed
StoreHelper
toCommandDispatcherHelper
- Renamed
BaseAction
toCommand
and all Action to Command - Renamed all
DefaultReducer
toCommandHandler
Preferences
class is not abstract anymore.GraphView
class is not abstract anymore.GraphViewEditorWindow
class is not abstract anymore.vse-blank-page
USS class name changed toge-blank-page
CompilationResult
renamed toGraphProcessingResult
CompilationStatus
renamed toGraphProcessingStatus
GraphViewEditorWindow.RecompilationTriggerActions
renamed toGraphViewEditorWindow.GraphProcessingTriggerActions
GraphViewEditorWindow.RecompileGraph
renamed toGraphViewEditorWindow.ProcessGraph
Stencil.CreateTranslator
renamed toStencil.CreateGraphProcessor
Stencil.OnCompilationStarted
renamed toStencil.OnGraphProcessingStarted
Stencil.OnCompilationSucceeded
renamed toStencil.OnGraphProcessingSucceeded
Stencil.OnCompilationFailed
renamed toStencil.OnGraphProcessingFailed
Stencil.GetCompilationPluginHandlers
renamed toStencil.GetGraphProcessingPluginHandlers
ITranslator
renamed toIGraphProcessor
ITranslator.Compile
renamed toIGraphProcessor.ProcessGraph
BoolPref.AutoRecompile
renamed toBoolPref.AutoProcess
CompilationStateComponent
renamed toGraphProcessingStateComponent
CompilationTimer
renamed toGraphProcessingTimer
GraphView.RecompilationTriggerActions
renamed toGraphView.GraphProcessingTriggerActions
NoOpTranslator
renamed toNoOpGraphProcessor
CompilerErrorBadgeModel
renamed toGraphProcessingErrorBadgeModel
CompilerError
renamed toGraphProcessingError
CompilerQuickFix
renamed toQuickFix
CompilationOptions
renamed toGraphProcessingOptions
BoolPref.AutoProcess
andBoolPref.AutoAlignDraggedEdges
are now false by default.IGraphElementPart
,BaseGraphElementPart
renamed toIModelUIPart
,BaseModelUIPart
respectively.GraphElementPartList
renamed toModelUIPartList
ICreatableGraphTemplate
merged intoIGraphTemplate
IOnboardingProvider
interface changed toOnboardingProvider
abstract class- Default title of
GraphViewEditorWindow
is changed from Visual Script to Graph Tool Stencil.MoveNodeDependenciesByDefault
is now initialized tofalse
GraphView
andPlaceMat
no longer implementIDropTarget
Stencil.DragNDropHandler
changed toStencil.GetExternalDragNDropHandler()
. Allows to dynamically select a drag and drop handler depending on context.Graphview.ExtractVariablesFromDroppedElements
changed toStencil.ExtractVariableFromGraphElement
SerializableGUID
is now backed by a Hash128 rather than a GUID.- The internal bridge was renamed from InternalAPIEngineBridgeDev.003 to InternalAPIEngineBridge.015
Fixed
- Dragging a node to a port doesn't dispatch 2 actions anymore
IMovable.Move(delta)
correctly usesdelta
parameter forNodeModel
[0.7.0-preview.1] - 2021-01-11
Fixed
- Remove orphaned .meta files for empty folders.
[0.7.0-preview] - 2021-01-05
Added
Store.MarkStateDirty
to dirty the state and rebuild the UI completely.Store.BeginStateChange
andStore.EndStateChange
to frame modifications to models. Except inside action reducers (where this is done for you), all calls toState.MarkModelNew
,State.MarkModelChanged
andState.MarkModelDeleted
should occur betweenStore.BeginStateChange
andStore.EndStateChange
.Store.BeginViewUpdate
andStore.EndViewUpdate
. These should be the first and last operations when you update the UI.GtfoWindow.Update
call them for you.- Dependency system for UI: a graph element can declare dependencies to other graph elements. They can be forward dependencies (elements that need to be updated when the element changes) or reverse dependencies (elements that cause the element to be updated when they change). There are also additional model dependencies: a graph element can specifies it needs an update whenever some model changes.
- Graph element parts are notified when their owner is added or removed from the graph view, by calls to
BaseGraphElementPart.PartOwnerAddedToGraphView
andBaseGraphElementPart.PartOwnerRemovedFromGraphView
. IGraphElement.Setup
andIGraphElement.SetupBuildAndUpdate
now take an additional context parameter, a string that can be used to modulate the UI. This parameters is most often null, but can take different values to specify the instantiation point of the UI. The goal is to specify a context for the model representation, when we need to use different graph elements for the same model type represented in different parts of the graph view.GraphElement.AddToGraphView
andGraphElement.RemoveFromGraphView
are called when an element is added or removed from the graph view.ChangeVariableDeclarationAction
, sent when the user changes the variable declaration of a variable node.RequestCompilationAction
, sent when the user request a compilation.- Polymorphic
AnyConstant
AnimationClipConstant
,MeshConstant
,Texture2DConstant
andTexture3DConstant
INodeModel.OnCreateNode()
, called when usingGraphModel.CreateNode
Removed
State.AddModelToUpdate
. UseState.MarkModelNew
,State.MarkModelChanged
andState.MarkModelDeleted
instead.State.ClearModelsToUpdate
State.MarkForUpdate
. UseState.RequestUIRebuild
Store.StateChanged
. Use store observers instead.GraphElementFactory.CreateUI<T>(this IGraphElementModel)
extension method was removed. Use the staticGraphElementFactory.CreateUI<T>
instead.GraphView.DeleteElements()
. UseGraphView.RemoveElement()
instead.GtfoGraphView.UpdateTopology
. OverrideGtfoGraphView.UpdateUI
instead.GraphModel.LastChanges
. UseState.MarkModelNew
,State.MarkModelChanged
andState.MarkModelDeleted
instead.INodeModel.DefineNode()
. UseOnCreateNode
instead if you don't implementBasicModel.NodeModel
Changed
- Add
BadgeModel
as a model forBadge
- Itemize menu item is enabled only on constants and (Get) variables that have more than one edge connected to their data output port.
- GTF-140 The blackboard and minimap no longer close when the add graph(+) button is pressed.
- Default BlankPage now provided
BasicModel.DeclarationModel.DisplayTitle
now marked virtualStore.RegisterObserver
andStore.UnregisterObserver
now take a parameter to register the observer as a pre-observer, triggered before the action is executed, or a post-observer, triggered after the action was executed.GraphElementFactory.GetUI
,GraphElementFactory.GetUI<T>
,GraphElementFactory.GetAllUIs
were moved to theUIForModel
class.CreateEdgeAction.InputPortModel
renamed toCreateEdgeAction.ToPortModel
CreateEdgeAction.OutputPortModel
renamed toCreateEdgeAction.FromPortModel
GraphView.PositionDependenciesManagers
renamed toGraphView.PositionDependenciesManager
(without the final s)GraphView.AddElement
andGraphView.RemoveElement
are now virtual.- Compilation is now an observer on the
Store
. The virtual propertyGtfoWindow.RecompilationTriggerActions
lists the actions that should trigger a compilation. IGraphModel
delete methods and extension methods now return the list of deleted models.- Visual Scripting
CompiledScriptingGraphAsset
now serialized inVsGraphModel
instead ofDotsStencil
- Manipulators for all graph elements as well as graph view are now overridable.
BlackboardGraphModel
is now owned by theGraphAssetModel
instead of theState
.BlackboardField
is now aGraphElement
Blackboard.GraphVariables
renamed toBlackboard.Highlightables
ExpandOrCollapseVariableDeclarationAction
renamed toExpandOrCollapseBlackboardRowAction
BlackboardGraphModel
was moved to theUnityEditor.GraphToolsFoundation.Overdrive.BasicModel
namespace- Removed the
k_
prefix from all non-private readonly fields. - Moved some images used by USS.
Stencil.GetConstantNodeValueType()
replaced byTypeToConstantMapper.GetConstantNodeType()
- Constant editor extension methods now takes an
IConstant
as their second parameter, instead of an object representing the value of the constant. ConstantEditorExtensions.BuildInlineValueEditor()
is now public.
Fixed
- GTF-126: NRE when itemize or convert variables on a set var node
TypeSerializer
wasn't resolvingTypeHandle
marked withMovedFromAttribute
when type wasn't in any namespace.- Fix a bug where dragging a token on a port would block further dragging
- Fix a bug where dragging a token to a port wouldn't create an edge
- GTF-145 Collapsed placemats at launch not hiding edges
- Fix a bug where dragging a blackboard variable to a port wouldn't be allowed
Deprecated
- Stencil shouldn't be considered serialized anymore. Kept Serializable for backward compatibility
[0.6.0-preview.4] - 2020-12-02
Changed
- Updating minimum requirements for com.unity.collections
- BasicModel.DeclarationModel.DisplayTitle now marked virtual
- Updating minimum requirements for com.unity.collections
- GraphModel.OnDuplicateNode now marked virtual
- BasicModel.DeclarationModel.DisplayTitle now marked virtual
Fixed
- TypeSerializer wasn't resolving TypeHandle marked with MovedFromAttribute when type wasn't in any namespace.
Added
- GtfoWindow-derived classes needs to implement
CanHandleAssetType(Type)
to dictate supported asset types. - Added hook (
OnDuplicateNode(INodeModel copiedNode)
) onINodeModel
when duplicating node - Added options to toggle Tracing / Options elements on
MainToolbar
- Added the
CloneGraph
function in theGraphModel
for duplicating all the models of a source graph
[0.5.0-preview.3] - 2020-10-28
[0.5.0-preview.2] - 2020-10-20
Added
- Generic
CreateEdge
on baseGraphModel
for easier overriding. GetPort
extension method to get ports by direction and port type.- Add
GraphModel
reference toStencil
- Add
InstantiateStencil
, changingStencil
set pattern inGraphModel
- new virtual property
HasEditableLabel
forEditableTitlePart
Removed
ChangePlacematColorAction
OpenDocumentationAction
UnloadGraphAssetAction
VariableType.ComponentQueryField
enum valueSpawnFlags.CreateNodeAsset
andSpawnFlags.Undoable
enum valuesCreateGraphAssetAction
andCreateGraphAssetFromModelAction
. UseGraphAssetCreationHelper
to create assets andLoadGraphAssetAction
to load it in a window.ContextualMenuBuilder
andIContextualMenuBuilder
; to populate a contextual menu, use the UIToolkit way of registering a callback on aContextualMenuPopulateEvent
or, for classes deriving fromGraphElement
, overrideBuildContextualMenu
.IEditorDataModel
andEditorDataModel
: useEditorStateComponent
if you want to hold state that is related to a window or a window-asset combination.IPluginRepository
ICompilationResultModel
Changed
- All reducers in the
UnityEditor.GraphToolsFoundation.Overdrive.VisualScripting
namespace have been moved to theUnityEditor.GraphToolsFoundation.Overdrive
namespace. - Reducers do not return the
State
anymore. - Almost all reducers are undoable.
- Replace interface
IAction
by classBaseAction
. RemoveNodesAction
renamed toBypassNodesAction
ItemizeVariableNodeAction
andItemizeConstantNodeAction
renamed toItemizeNodeAction
CreatePortalsOppositeAction
renamed toCreateOppositePortalAction
SplitEdgeAndInsertNodeAction
renamed toSplitEdgeAndInsertExistingNodeAction
UpdateConstantNodeActionValue
renamed toUpdateConstantNodeValueAction
ChangePlacematPositionAction
renamed toResizePlacematAction
DropEdgeInEmptyRegionAction
renamed toDeleteEdgeAction
CreateNodeFromInputPortAction
andCreateNodeFromOutputPortAction
renamed toCreateNodeFromPortAction
- Moved
GraphAssetModel
outside ofBasicModel
namespace since the asset is needed by GTF code. - The namespaces
UnityEditor.GraphToolsFoundation.Overdrive.Models
,UnityEditor.GraphToolsFoundation.Overdrive.GraphElements
andUnityEditor.GraphToolsFoundation.Overdrive.SmartSearch
have all been merged intoUnityEditor.GraphToolsFoundation.Overdrive
. - Simplify
IGraphModel
. Lots of methods moved out of the interface and made extension methods. Order of parameters has been somewhat standardized. EdgePortalModel
is now backed by aDeclarationModel
rather than aVariableDeclarationModel
Store.GetState()
is nowStore.State
- Bug fix: the expanded/collapsed state of blackboard variables is persisted again.
- Blackboard UI adopts the same architecture as the
GraphView
, with a backing model (IBlackboardGraphProxyElementModel
), usingIGraphElementParts
and the Setup/Build/Update lifecycle. - Added a
priority
parameter toGraphElementsExtensionMethodsCacheAttribute
to enable overriding of reducers (and all other extensions) Store.GetState()
is nowStore.State
State.CurrentGraphModel
is nowState.GraphModel
IBlackboardGraphProxyElementModel
is nowIBlackboardGraphModel
.- Moved
EditorDataModel.UpdateFlags
,EditorDataModel.AddModelToUpdate
andEditorDataModel.ClearModelsToUpdate
toState
. CompilationResultModel
is nowCompilationStateComponent
TracingDataModel
is nowTracingStateComponent
- Made
CreatePort
andDeletePort
part ot theIPortNode
interface. - Made
AddInputPort
andAddOutputPort
part of theIInOutPortsNode
interface. - Moved all variations of
AddInputPort
andAddOutputPort
to extension methods.
[0.5.0-preview.1] - 2020-09-25
Added
ContextualMenuBuilder
, implementing the common functionality ofVseContextualMenuBuilder
BlankPage
, implementing the common functionality ofVseBlankPage
GtfoGraphView
, implementing the common functionality ofVseGraphView
GtfoWindow
, implementing the common functionality ofVseWindow
Removed
VSNodeModel
VSPortModel
VSEditorDataModel
VSPreferences
VSTypeHandle
VseContextualMenuBuilder
VseBlankPage
VseGraphView
VseWindow
DebugDisplayElement
ISystemConstantNodeModel
VseUIController
, now part ofGraphView
VisualScripting.State
, now part ofOverdrive.State
UICreationHelper
, now part ofPackageTransitionHelper
IEditorDataModel
now part ofIGTFEditorDataModel
IBuilder
InputConstant
InputConstantModel
IStringWrapperConstantModel.GetAllInputs
Stencil.Builder
ConstantEditorExtensions.BuildStringWrapperEditor
PortAlignmentType
VisualScripting.Node
, merged intoCollapsibleInOutNode
VisualScripting.Token
, merged intoTokenNode
- All factory extension method in
GraphElementFactoryExtensions
except the one that creates ports.
Changed
- A lot of classes have been moved outside the
VisualScripting
namespace. IGTFStringWrapperConstantModel
was merged withIStringWrapperConstantModel
- When one drops an edge outside of a port, instead of deleting the edge, we now pop the searcher to create a new node.
- Rename
CreateCollapsiblePortNode
toCreateNode
. - Remove
GTF
from class and interface names. For example,IGTFNodeModel
becomesINodeModel
. PackageTransitionHelper
becomes `AssetHelper.- Base capabilities are no longer serialized with the
GraphToolsFoundation
prefix.
[0.4.0-preview.1] - 2020-07-28
Drop-12
Added
- Added an automatic spacing feature
API Changes
IGTFNodeModel
now has aTooltip
property.IGTFEdgeModel
FromPort
andToPort
are settable.- Implementations of Unity event functions are now virtual.
GraphModel
basic implementation now serializes edges, sticky notes and placemats as references to enable the use of derived classes for them.EditorDataModel.ElementModelToRename
was moved toIGTFEditorDataModel
.- Added default value for
IGTFGraphModel.CreateNode
spawnFlag
parameter. - Added support for
List<>
inTypeSerializer
.
Removed
PanToNodeAction
. CallGraphView.PanToNode
instead.RefreshUIAction
. CallStore.ForceRefreshUI
instead.
Fixed
- Fix issue when moving two nodes connected by edge with control points.
- Fix issue with auto placement of vertical ports with labels.
- Fix behavior of the default move and auto-placement reducers.
Changed
- Changed the automatic alignment feature to consider connected nodes
- Extract basic model implementation from VisualScripting folder/namespace to GTFO.
- Split
IGTFNodeModel
andIGTFPortModel
into finer grained interfaces. - Add default implementation of some interfaces.
- Replace
IGraphModel
byIGTFGraphModel
- Replace
IVariableDeclarationModel
byIGTFVariableDeclarationModel
- Remove unused
BlackboardThisField
andThisNodeModel
- Base Store class is now sealed. All derived store classes have been merged into the base class.
- Capabilities API modified to be more versatile
- Capabilities are no longer interfaces but rather "simple" capabilities that can be added to models.
IPositioned
has been renamedIMovable
.
- Test models in
Tests\Editor\Overdrive\GraphElements\GraphViewTesting\BasicModel
andTests\Editor\Overdrive\GTFO\UIFromModelTests\Model
have been unified underTests\Editor\Overdrive\TestModels
[0.3.0-preview.1] - 2020-07-31
Drop 11
[0.2.3-preview.3] - 2020-07-15
Added
- Added dirty asset indicator in the window title
- Made VseWindow.Update virtual to enable derived classes to override it
Fixed
- Fixed copy / paste issues with graph edges
- Mark graph asset dirty when edges are created or deleted
- Fixed resize issues with the sticky notes
[0.2.3-preview.2] - 2020-06-18
[0.2.3-preview.1] - 2020-06-18
[0.2.3-preview] - 2020-06-12
[0.2.2-preview.1] - 2020-05-06
Changed
- Enabling vertical alignment in out-of-stack nodes w/ execution ports
[0.2.1-preview.1] - 2020-03-20
Added
- AnimationCurve constant editor
- Allow support of polymorphic edges in graph.
- Allow windows to decide if they handle specific asset types
Changed
- Rework pills visual to tell apart read-only/write-only fields
Fixed
- Fix graph dirty flag when renaming token
[0.2.0-preview.4] - 2020-03-20
Changed
- Updated com.unity.properties.ui@1.1.0-preview
[0.2.0-preview.3] - 2020-02-26
Fixed
- Fixed package warnings
[0.2.0-preview.2] - 2020-02-21
Changed
- Changed the handing of the MovedFrom attribute to accept assembly strings without version and fixed support for nested types
[0.2.0-preview.1] - 2020-02-06
[0.2.0-preview] - 2020-02-05
[0.1.3-preview.1] - 2019-01-29
Added
- Added support for migrating node types which have been moved or renamed
[0.1.2-preview.10] - 2019-01-16
[0.1.2-preview.9] - 2019-12-17
[0.1.2-preview.8] - 2019-12-10
[0.1.2-preview.7] - 2019-12-09
[0.1.2-preview.6] - 2019-11-25
[0.1.2-preview.5] - 2019-11-12
[0.1.2-preview.4] - 2019-11-11
[0.1.2-preview.3] - 2019-10-28
[0.1.2] - 2019-08-15
[0.1.1] - 2019-08-12
[0.1.0] - 2019-08-01
This is the first release of Visual Scripting framework.
Short description of this release