- Home /
Rigidbody constraints not working with parent/child relationship
I have an object that needs to be restrained to rotating only on the z axis. I also need to make this object a child of another object, but when I unchild it again, it gets tilted by ~5 degrees on x and y. I have the correct rigidbody constraints checked, but they don't seem to be working. What's going on?
Answer by Owen-Reynolds · Oct 27, 2011 at 03:35 PM
The constraints are only on applying rigidbody (automatic) physics to it. For example, a rigidbody NPC has y rotations constrained so that clipping a corner won't start it spinning. But, enemy.Rotate(0,5,0);
will still spin it on y just fine, and it will keep that new facing.
In your case, the parent object spins the child, like it should. Constrained x,y,z rotation merely prevents the engine from picking up on that motion and using momentum to spin after the parent has stopped.
Depending exactly on how you want it to look, you could put an empty "lookAt point" on the parent in front of where you child. Each frame childed, have your object do a LookAt. Possibly adjust the y to your height. That would snap the object into being semi-face up. Might need that in LateUpdate, after you've been moved/spun by the parent.
If you want it to not spin with the parent at all, just move, you could maybe reset rotation to a saved value, I think also in LateUpdate.
Answer by roamcel · Oct 27, 2011 at 09:38 AM
Instead of constraining computationally, access the rigidbody and unfold its 'constraints' options. You can choose translation and rotation constraints there.
Your answer
Follow this Question
Related Questions
Make a simple tree 1 Answer
Child affecting parent rigidbody? 1 Answer
Connecting Multiple Rigidbodies with Collision 0 Answers
How can I identify a non-uniform scaled mesh, and fix it? 1 Answer