alelievr / NodeGraphProcessor

Node graph editor framework focused on data processing using Unity UIElements and C# 4.6
https://github.com/alelievr/NodeGraphProcessor/projects/2
MIT License
2.34k stars 387 forks source link

Implement custom node-based Conversions #198

Open Greebling opened 2 years ago

Greebling commented 2 years ago

I implemented custom converter nodes with this branch. These nodes are automatically added when a user connects two ports that are convertible through by a node. I created the FloatToStringsNode to give an example of how this feature can be used. To test it out try to connect a 'Sub' node to the log input of the 'Console Log' node. You will see that the FloatToStringsNode is added inbetween to do the conversion from float to int automatically. This feature can be very useful in some cases, since some conversions rely on additional info given by the user, as shown by my example node. Conversions now do not need to be symmetrical, as I reordered some parameters in the conversion checking to always be the right way around. This should fix what issue #173 talked about. Additionally, some small fixes are implemented, mostly regarding nullreference exceptions. Also some small typos in the README. Some error messages were also made much clearer. Sorry for bundling this all together into one large pull request. I dont use git a lot so this was the easiest way for me.

Greebling commented 2 years ago

Here an example of how this feature works inside the graph editor. Start a drag to a targeted node port ConversionDrag When releasing the conversion node is automatically added inbetween ConversionEnd