FPS camera movement breaks GameObject

Dear Friends I do wasted alot of time to solve this one stupid thing with this First Person Controller Camera.

I have a weapon that contains alot of parts in it that are parented to weapon.
And weapon is parented to Camera inside FPS controller.

Here is the deal (And it not happens when I parent it outside the camera)

When I run the game preview everything is alright while I move camera horizontally
but when I move it verticaly the all parts from “weapon” just gets messed up.
they do move in needed direction but each on their own and they all clip through each other. The picture looks very bad from this point.

Only happens with this camera and only if anything is parrented to it.

Please can anyone describe this problem as it is. And explain how to solve it.
And I did look though all the advices currently on these forums
and didn’t find simple solution to this.

Thank you.

I attached the image from my most recent tutorial area for testing out stuff.
Here you can see the problem (and here Is no scripts placed by me so they cant be the reason)

I probably say this blindly (without access to code you are using), you should only move/rotate root of the object (Melee), not any of the others. Also, in case if you are using physics colliders, make sure weapon parts doesn’t collide which each other. There is API call for that:

Physics.IgnoreCollision(collider1, collider2);

Make sure that conected object doesn’t clash with each other.

Also, seeing code you use both for moving weapon and fps camera will be REALLY helpful.

Yup the mistery is solved, finally… I was seriously right when I said its all because of naming. Everyone who has similar problems look here When you name any child or parent object before parenting
you will have different camera distortions , dont know why, dont care. So here what you need to do - Before adding any objects or renaming Empty object place it as you like then whyle its still Empty Object parent it anywhere you need then add child objet to it and only then rename it. Step - by - Step