Reply To: On Play Exit, All Node Positions Randomized

NodeCanvas Forums Support On Play Exit, All Node Positions Randomized Reply To: On Play Exit, All Node Positions Randomized


Hi, adding to this thread rather than the one linked above as it concerns exactly the same node-randomisation issue. Means I have to ctrl-z on my BehaviourTree every time Unity does a domain reload (exiting playmode or recompiling scripts). On my end it seems to happen when the Canvas window is open, and I’m more than 1 level ‘deep’ into a tree, i.e. using SubTrees.

The specific error is “ArgumentException: Getting control 2’s position in a group with only 2 controls when doing repaint”, where the number 2 seems to correspond to however many nodes got randomly moved. Included the full stack trace in the attached image.

I’m aware it’s been flagged as a Unity bug, but wanted to add that this only began happening after upgrading NodeCanvas from a previous version – while keeping my Unity version the same, in which this issue didn’t always happen. My previous NC version was quite old, from a couple of years ago. It seems like what’s different now is that after script recompilation, the translation amount on the graph ‘resets’ to (0,0), with only some of the nodes coming along with it (there’s often a split second where I can see the canvas being moved, and the node connections extending massively as a result). This occurs immediately after the “Compiling please wait…” message is shown in the Canvas window.

I’m working on a large commercial project at the moment that has a lot of deeply nested graphs, and having to make this change after every domain reload is making it increasingly hard to work on. I’d really appreciate it if this could be looked into again.

  1. NC-error.png