Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Feedback Obi Solver reuse

Thank you for the product. So far I have been happy with the product.

I noticed a behaviour that threw me off for quite a while as I couldn't get the rope to render. When there's an already existing active Obi Solver in the scene, a new Obi Rope will be generated as a child of this solver. It seems to search for another solver in the scene and exclude inactive.

Following tutorials, the only way to create a fresh rope was to open a different scene and create the rope there, then copy-paste it to my target scene. This was just because it was so confusing cos I didn't know why it's doing that, cos it didn't do it in the tutorial. My ropes are parented to different gameobjects and have nothing to do with one another, and by design the solver is not a per-scene single controller but it's meant to be replicated.

You might consider removing that behaviour or making it optional as a menu option or something. Or explaining that I need to deactivate the existing solver to create a separate rope.

By default, any new rope you create via the GameObject menu will be parented to the first active solver in the scene if you have no GameObject currently selected. This mimics Unity's own behavior when creating objects that depend on a "controller/manager" object, for instance UI elements that must be parented to a Canvas.

This is intentional since it is what makes sense in most cases. Solvers are basically simulation "worlds", that define global settings for a simulation. Using an individual solver for every single rope is rather wasteful, and something you’re supposed to avoid. It’s kinda like creating a new Canvas for every single button in your UI or a new PhysicsWorld for every rigidbody in your game, no good reason for it except in certain uncommon use cases. A typical setup is grouping actors in a few solvers by spatial proximity, or by simulation space.

If you want to create a new rope in a specific solver, no need to deactivate existing solvers in the scene. There's many other options:

- Select the solver you want your rope to be created in, then create the rope.
- Right click on the solver and add the rope from the dropdown menu (3D Object->Obi->ObiRope).
- Add the rope component to an existing GameObject using the Component menu or the Add Component button in the inspector.
- Or, if the rope's been created in the wrong solver by mistake, just drag it to the correct one.

This is all standard Unity behavior.

kind regards,