28-01-2020, 04:45 PM
(28-01-2020, 04:24 PM)josemendez Wrote: Just checked the codebase and no included script removes the ObiRope component of an object at runtime. There's no code in Obi 5.1 (afaik) that could lead to these:I have never written any scripts that removes or destroys an Obi Component. The only thing i had (before upgrading to 5.x) was a script to disable a solver - but that's not in use anymore.
Code:Can't remove ObiRope (Script) because ObiPathSmoother (Script), ObiParticleRenderer (Script), ObiParticleAttachment (Script), ObiParticleAttachment (Script), ObiRopeCursor (Script) depends on it.
Can't remove ObiPathSmoother (Script) because ObiRopeLineRenderer (Script) depends on it
This will happen if a script tries to remove the ObiRope component of an object without removing all other components that depend on it first. Have you written any custom scripts that do this?
(28-01-2020, 04:24 PM)josemendez Wrote: This one:All ropes and rods are childed under solvers.
Code:NullReferenceException: Object reference not set to an instance of an object
Obi.ObiRope.RebuildConstraintsFromElements () (at Assets/Obi/Scripts/RopeAndRod/Actors/ObiRope.cs:254)
Obi.ObiRopeCursor.ChangeLength (System.Single newLength) (at Assets/Obi/Scripts/RopeAndRod/Actors/ObiRopeCursor.cs:240)
Could only happen if the rope didn't have any distance constraints loaded. Which in turn, can only happen if the rope is not part of a solver. Is the rope part of the hierarchy of a solver?
However, I fixed the error (in my update) by checking if the rope and the cursor is enabled;
Code:
if(rope && cursor)
cursor.ChangeLength(rope.restLength + change);
This tells me that something is disabling the cursor/rope when I stop play mode (before the last update is run), but I can't figure out what it is.