com.warwlock.node-graph-processor
Version:
Node graph editor framework focused on data processing using Unity UIElements and C# 4.7
246 lines (166 loc) • 8.1 kB
Markdown
# Changelog
All notable changes to this package will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
## [1.3.2]
### Added
- First Warwlock release.
## [1.3.1]
### Fixed
- Fixed fields with [Settings] attribute not showing up with inheritance.
- Fixed selection still active when selecting nodes without inspector fields.
- Fixed multi-selection drag and drop of edges.
- Fixed errors when a parameter is destroyed and it's reference is still used in the graph.
### Changed
- Fields with both attributes [SerializeField] and [ShowInInspector] are now visible in both the node and inspector.
## [1.3.0]
### Added
- Added a callback on the BaseGraph class to know when the asset is deleted on the disk.
- Added the support of [InspectorName] to change the display name of fields in the node.
### Fixed
- Fixed relay node not applying custom conversions when needed
- Fixed the node create menu not listing all nodes when created from edge drag.
- Fixed Int vector drawer display in nodes.
- Fixed parameter not editable in Unity 2021.2.
### Changed
- Deprecated the FieldFactory and [FieldDrawer] system. You can use Unity's CustomPropertyDrawer instead.
- SerializedProperties are now used to display the properties in the node, so they support Unity's default UI and attributes for all properties.
## [1.2.0]
### Added
- Renamable nodes
- Added an API in the toolbar view to add separators and custom UI fields.
- Added API to check if node was created from a duplication operation (see BaseNode.createdFromDuplication and BaseNode.createdWithinGroup).
### Changed
- Node inspector settings are now serialized for the lifetime of an editor session (not between sessions).
### Fixed
- Fixed GetNodeViewTypeFromType not supporting inheritance.
- Fixed nodes loosing the graph reference after the asset was changed in by an external process.
## [1.1.2]
### Fixed
- Fixed a nullref that happened after closing the graph and undoing a change on a parameter
- Fixed an issue where an undo broke the parameter values
- Fixed edges disappearing after an undo made in the scene and a graph was opened.
## [1.1.1]
### Fixed
- Fixed issues with relay node
## [1.1.0]
### Added
- Added vertical ports
- Added an example with Waitable and async nodes
- Added drag and drop support for assets and scene objects directly into a graph
### Fixed
- Fixed ports duplicated after undo
## [1.0.1]
### Added
- You can now re-order elements inside the blackboard.
## [1.0.0]
### Added
- Added support of custom property drawers for exposed parameters in the graph inspector (the one that shows in the inspector when the graph is selected).
### Change
- Serialization backend (use [SerializeReference] instead of JSON)
## [0.10.4]
### Added
- Added deletable bool API on the BaseNode
### Fixed
- Fix missing and inconsistent field drawers on inherited node fields
- Fix inconsistent field drawer positions after unsupported fields
- Fixed port sync code
- Fixed exception to log not handling correctly the stacktraces
## [0.10.1]
### Fixed
- Node creation menu wasn't showing all graph specific nodes
## [0.10.0]
### Added
- Added an API to exclude nodes from the creation menu either based on graph type or graph settings. See IsCompatibleWithGraph and NodeMenuItemAttribute attributes.
### Fixed
- Fixed locale serialization issue with float and vectors
## [0.9.4]
### Fixed
- Fixed port order not correct.
## [0.9.3]
### Fixed
- Fix selection lost after undo / redo
- Fix node not removed from the inspector when the node is deleted in the graph
- Fix performance issue with port sync
- Fix nodes not disabled when deleted due to undo/redo
## [0.9.2]
### Added
- Added sticky notes (only for 2020.1+)
## [0.9.0]
### Added
- Added the [ShowAsDrawer] Attribute to display a drawer beside an input port
### Fixed
- Fixed relay node packing workflow and some deletion issues
- Fixed ArgumentOutOfRange in relay node
- Fixed relay node creation from input port
## [0.8.0]
### Added
- Depth first compute order (enabled by default) instead of breadth first
- Cycle detection in the graph, cyclic nodes are now marked with a compute order of -2
- Added a node create menu when dropping an edge in the graph that also connects the edge to the new node (like in ShaderGraph or VFX Graph)
- Added ITypeAdapter.GetIncompatibleTypes to list all the incompatible types (prevent automatic casting / unwanted connectable ports, can be used to exclude a conversion to System.Object for example)
- Added a node inspector to show advanced settings in the inspector, see `ShowInInspector.cs` and `DrawDefaultInspector(bool fromInspector)` for more details.
### Changed
- Improved a lot the edge connection behavior for both input and output ports
- Improved domain reload performances by using `TypeCache` when possible
- Node copy/pasting now keeps the connected edges
- Copy/paste now works between multiple graph windows
- Copy/paste now supports node groups
### Fixed
- Fixed delete of multiple relay node at the same time breaking the graph
- Fixed undo event not being unregistered when closing the graph
- Fixed undo on parameter creation / deletion
- Fixed toolbar AddButtons deleting existing buttons
## [0.7.1]
### Added
- VisibleIf attribute in nodes, allow you to show fields only when another field have a specific value.
- Added the possibility to hide controls when the mouse is not over the node
## [0.7.0]
### Added
- Added a method to call the onProcess callback in the graph
- Support of multiple [NodeMenuItemAttribute] on the same class
### Fixed
- Fixed execution error in player when using IL2CPP
- Fixed ObjectField creation with FieldFactory
## [0.6.0]
### Added
- Added Relay nodes
- Added API to have a custom Edge Listener
### Changed
- When a port is disconnected, it's value is set to null or default.
### Fixed
- Window menu graph example
## [0.5.0]
### Added
- Added StackNode with custom view
- Added an API to notify the graph that a node have changed (BaseGraph.NotifyNodeChanged)
## [0.4.0]
### Changed
- Renamed Comment Block by Group
## [0.3.0]
### Fixed
- Fixed Enums fields created via FieldFactory (inspector graph UI for properties should now work with enums)
### Added
- User defined type conversions inside the graph (ex: float to vector). See TypeAdapter.cs
## [0.2.0]
### Fixed
- Fixed build errors
- Fixed badge distance when node used a custom size
## [0.1.0]
### Added
- API to create C# template menu items (and moved the default Node and NodeView templates to Examples)
- Added an event that is fired when something is changed inside the graph (BaseGraph.onGraphChanges)
- Added support of node messages (you can attach one message with an icon to a node, either from the process function or from the view. See `AddMessage` and `AddMessageView` functions)

### Fixed
- When switching a port type, the connected edges are now removed if the new port type is incompatible.
## [0.0.0]
### Added
- Node and Graph property serialization (as json) Scriptable Object to store graph as a Unity asset.
- Highly customizable and simple node and links API
- Support multi-input into a container (multiple float into a list of float for example)
- Graph processor which execute node's logic with a - dependency order
- [Powerful C# API to add new nodes / graphs](https://github.com/alelievr/NodeGraphProcessor/wiki/Node-scripting-API)
- Exposed parameters that can be set per-asset to customize the graph processing from scripts or the inspector
- Search window to create new nodes
- Colored comment blocks (node groups)