Local position of a rigidbody?

Hi all who read this,

I have a character set up in a hierarchy such that he has three “wraps” or cloths hanging from him that dangle and trail around him and such when he moves. The hierarchy is something like this (not necessarily named this, but in this structure):

Super Object
_____1stCloth’s 1st Link
__________(9 more cloth links, each a child of the last)
_____2ndCloth’s 1st Link
__________(etc)
_____3rdCloth’s 1st Link
__________(etc)
_____Main Character

I have kinematic rigidbodies on the top head, right shoulder, and left elbow joints of the main character. The “links” are rigidbodies chained together via joints, with the “1st link” of every cloth linking to a respective rigidbody on the skeleton. Then I use a line renderer to draw through all the necessary points defined by each cloth “chain.” The result is something that sort of trails behind the player as he moves around.

However, that’s not the problem. The character moves from scene to scene. His parent object is set to not destroy on load, and he’s able to say, walk into a house (which loads a new scene with specific stuff in there), and then leave the house and go back to say, the town.
The character does this nicely. To do this, I use OnLevelWasLoaded, and I move the “SuperObject” to the destination point, and I set the “MainCharacter”'s localPosition to (0,0,0).

My issue is that the cloths that are suppose to kind of hang off him. They work fine if he’s only in one scene, but once the transition takes place, the chains of joints stretch to ridiculous lengths. The first link stays where it should, but the remaining links seem to anchor themselves about the origin of the new scene.

I have tried setting the rigidbodies in the chain to kinematic. This makes the whole chain static, but otherwise moves to where it needs to be. However, if in the same code I change the rigidbodies to no longer be kinematic, they immediately return to their bizarre positions.

I am aware that simply using transform.localPosition and changing that does nothing for a rigidbody that’s not kinematic, due to the physics engine dictating where the rigidbody should be and thus ignoring the values in its transform.

At this point, I’m not really sure what to do. Is there a way to get the localPosition of a rigidbody if it’s a child of another object? In that way, I could say, record the initial local positions of the cloths, then whenI reposition the main character to localPosition=(0,0,0), I can reposition those cloths to their original localPositions. Essentially reassembling the conditions the character initially spawns in, without actually spawning a whole new one.

Can anyone help me out? Essentially, this is like a cape, that needs to be persistent with the character even as the character moves scene to scene.

Little late but in case some one comes across this.

I would make a prefab. If that won’t solve the issue make prefabs for all the objects then reattach in the next scene.