McManning / BlueGraph

Visual Scripting Framework for Unity
MIT License
237 stars 30 forks source link

Real-time refresh #57

Open Ai00000 opened 2 years ago

Ai00000 commented 2 years ago

Graph can't update Node in real time after modifying the Node class. It needs to create a new Node.

McManning commented 2 years ago

Hi, in what way are you modifying the node class? Renaming? Adding/removing ports? Changing execution behaviour? etc.

Thanks! Chase

Ai00000 commented 2 years ago

When you modify the node structure, for example, add a new port .

JefferiesTube commented 2 years ago

Any news on this one? While developing nodes this is a big hassle. Renaming node classes results in errors in the console (that do not break anything, but I can't get rid of them). Adding Ports to new nodes is not applied to already existing nodes in graphs. So any changes would require a lot of manual recreation of nodes. So a "Node Refresh" option in the context menu would be great

McManning commented 2 years ago

I can definitely see the annoyance here. I've had to do a lot of pre-planning before making nodes myself, but I understand that workflow doesn't always work.

Unity does have a FormerlySerializedAs attribute and Bolt has it's own similar method. We'd probably have to do something like that here, or a new tool (EditorWindow) for finding/fixing graph issues.

The above is just for renaming classes/ports though - it's sort of one of the headaches of Unity's serializer/asset loader. Without hinting what something was renamed to, we can't figure out what something was previously named once assets reload. For adding ports, I would expect that to work without issue. I'll look into seeing why that isn't refreshing nodes with updates.