I’ve designed an interactive UI based mostly on Node2D elements since it has a lot of graphic design to it (the typical Controls tend to lock themselves into rectangular blocks). However, I would like to integrate it as a block into the Control system.
If I put my Node2D tree in a separate scene, is there any way I could define a box around it and then have the Node2D scale up or down depending on the size of the box in the component it is used in? I was thinking if I made my Node2D tree a child of a PanelContainer then it would automatically resize if I dragged the handles of the PanelContainer, but that doesn’t seem to happen.
Are there any proper ways to mix Node2D nodes and Controls?
Afaik the engine cannot do this automatically because Node2D doesn’t have the concept of a bounding box. You can parent it to a control, then make a script that determines the bounding box (which would be specific to your use case) and scale/position it to fit inside control’s bounding box.
I’m not sure if I understood you correctly. You want to keep Node2Ds inside a control node but still manage their transforms etc yourself?
If you keep a node as a child of a control node, the node will automatically be adapted to whatever settings the control parent has. However if you add a non-control node (like Node2D) as a childen and then add Node2D children to those nodes, you will be able to edit them much more conveniently. The mid level Node2D would just be there to remove the “inherits settings from control parent” problem.