17-07-2017, 02:07 PM
(14-07-2017, 07:02 PM)josemendez Wrote: If you just want to re-start the simulation when moving the rope, this is fine.
There's however the possibility of doing this: just disable the rope, move it to a new place, yield WaitForFixedUpdate() (so that Obi has time to recognize that you moved the rope!), and re-enable it . Simpler, and you simulation won´t be reset upon teleportation.
I did try this approach initially, however, it gave me undesirable outcomes as the rope was often in the incorrect position, or the rope's origin would move, but the rope itself would not. The behaviour seemed quite inconsistent infact, for example;
When Teleporting whilst holding the rope, the above method would work a treat. However, when the rope was in Position A and I wanted to reset it to the state it was in when I started the application, moving/Resetting the actor was insufficient (And ResetActor often placed the rope in the incorrect position), and so I had to devise a much more complex method using ObiRope.GeneratePhysicRepresentationForMesh() as the backbone, reapplying the pin constraints as needed once complete.