# Rotating the parent makes the whole object move

What I want to do: have a sphere on which force is applied when W is pressed. But in order to add force forward, I have to add a parent that won’t rotate when force is added, so the parent’s axis will stay at the right place.

Also, this is like a third person view, the camera is behind the sphere.

But, if I add force to the sphere and it moves, I also have to update the parent’s position, I do like this:

``````transform.position = child.transform.position - child.transform.localPosition;
``````

The problem is, when I right click I want to rotate the sphere and camera 90 degrees. I do it like this:
camera.transform.RotateAround(transform.position,new Vector3(0,1,0),-90);
transform.parent.Rotate(0,90,0);

However when I click and rotate the entire thing, the sphere moves out of the scene, without me doing anything but the rotation.

What am I doing wrong?

Sir, use this:

``````	public Vector3 inputDir = Vector3.zero;
public Quaternion rotateInputDir = Quaternion.Euler(0f,0f,0f);//< initial rotation
private Vector3 myPrevPos = Vector3.zero;

void Start () {
myPrevPos = transform.position;
}

void Update () {
inputDir = new Vector3(Input.GetAxis("Horizontal"),0f,Input.GetAxis("Vertical"));
rigidbody.AddForce( rotateInputDir * inputDir * 10f );
if (Input.GetMouseButtonDown(1)) {
rotateInputDir *= Quaternion.Euler(0f,90f,0f);
Camera.main.transform.RotateAround( transform.position , Vector3.up , 90f );
}
Camera.main.transform.position += transform.position-myPrevPos;
myPrevPos = transform.position;
}
``````

PS: using this don’t parent here these objects with each other