I know the answer you’re thinking is to just switch which one is the parent and which one is the child but that creates bigger problems and I will try to explain in detail. So I have a parent that is called UFO Complete and I have two children under it called Main Camera and UFO. With the camera I have a script that uses the RotateAround function allowing me to rotate my camera around the UFO. I also have a script that moves the parent UFO Complete along with the UFO and Camera since they are children. However, the UFO complete doesn’t rotate with the camera so if going forward it is always moves in the same direction despite the camera rotating around the UFO. I tried giving the moving script to the camera and putting the UFO as a child of the camera, which would have worked but my camera is slightly tilted downwards so the UFO moves down as well as forward when I press the up arrow key. I can’t think of anything else and would appreciate some suggestions.

How about a totally radical solution- Make both the UFO and the satellite camera children of the same, invisible, parent! This way your movement scripts will work, and you just have the UFO constantly rotate around its localRotation relative to its parent! Which is to say, the UFO is still the parent, but the mesh that you see is a child that is constantly rotating, all UFO-like.