Not sure what has to be done to correctly swap between a generic fps controller camera, to something like an eagle eye view.

The idea is to have the player use the FPS controller, then when he get in a control seat; I want to switch to a larger view; kinda like a RTS view from the top (I call it "eagle eye", not sure about the technical name).

I did check around and from my research, I have to swap active camera parameter; but when I do so, the FPS remain active, while I would like to hide it, and also disable it completely, since the player will use the mouse at that point.

If I destroy the FPS, that works, but when the player leave the control seat, I have to re-create it, which bring a whole level of pain, to restore its state.

How do you disable temporarily a FPS, so it won't be neither visible nor it will interact with anything?


The solution is to call in the script the enable/disable for all the elements connected to the 2 camera objects.

You can have only 1 camera and one audio listener, so to swap cameras, you need to

1) disable the FPS camera, and enable the other camera 2) disable any element tied to the FPS camera (player controller, audio listener and so on) and enable their counterpart on the other camera.

It is pretty straight forward and you won't see any flicker when swapping the cameras; just remember to write code that will always enable one camera at any time, or Unity will complain.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.