02-10-2021, 02:42 AM
Hello there,
I have a quick question regarding collisions.
Here is the basic setup - a rope and two dynamic objects attached to each side of the rope. The collision on the Obi Collider components on each object is set to Nothing (Collides with: Nothing) and when I run the game it behaves as expected.
However, due to performance optimizations, at times, I want to disable the rope and one of the objects and re-enable it later.
I do that by disabling the Solver, the mesh renderer on the rope (as I want to hide it) and I also disable one of the objects (.SetActive(false).
Upon re-enabling everything the resulting effect is pretty catastrophic as the re-enabled object starts flying around(I assume due to a collision between the object and the rope or a different issue most likely originating from the obi particle attacher component).
Instead of disabling the objects, I tried disabling the mesh renderer and making it Kinematic (and parent it to the other object to retain its location relative to the other object - the rope is what does it normally) and the result is considerably better as the object just wiggles around a bit instead of flying around, but even that way the object and the rope never go to rest. The reason I think its a collision issue is because when I disable the component at runtime (while it wiggles around) the rope quickly calms to rest and behaves as expected.
Using Unity 2020.3.7f1
The latest entry in the Change Log is [6.2] so I assume that is my current ObiRope version. (downloaded it a week or two ago).
Is there a proper way to effectively disable the solver, rope mesh and attached component and then re-enable them without such issues.
Thank you!
I have a quick question regarding collisions.
Here is the basic setup - a rope and two dynamic objects attached to each side of the rope. The collision on the Obi Collider components on each object is set to Nothing (Collides with: Nothing) and when I run the game it behaves as expected.
However, due to performance optimizations, at times, I want to disable the rope and one of the objects and re-enable it later.
I do that by disabling the Solver, the mesh renderer on the rope (as I want to hide it) and I also disable one of the objects (.SetActive(false).
Upon re-enabling everything the resulting effect is pretty catastrophic as the re-enabled object starts flying around(I assume due to a collision between the object and the rope or a different issue most likely originating from the obi particle attacher component).
Instead of disabling the objects, I tried disabling the mesh renderer and making it Kinematic (and parent it to the other object to retain its location relative to the other object - the rope is what does it normally) and the result is considerably better as the object just wiggles around a bit instead of flying around, but even that way the object and the rope never go to rest. The reason I think its a collision issue is because when I disable the component at runtime (while it wiggles around) the rope quickly calms to rest and behaves as expected.
Using Unity 2020.3.7f1
The latest entry in the Change Log is [6.2] so I assume that is my current ObiRope version. (downloaded it a week or two ago).
Is there a proper way to effectively disable the solver, rope mesh and attached component and then re-enable them without such issues.
Thank you!