Creating Player upon Start

So I have my game, and the player has several different “characters” lets say, to choose from. So before the player enters the scene, they are prompted to choose the character they want to play as.

So, in retrospect, players clicks level, then clicks character, and then the game loads the level, and depending which character the player chose, then creates the gameObject of that character for the player to control.

My question is, how do I achieve this? Right now I just have different scenes, and depending on which character is chosen, loads the scene with the character already created in the scene.

I already tried doing this once, but when the player chooses the character, the scene is loaded correctly, and the correct character is created, but the player does not get control of them and the camera of the character is not activated. Is there some kind of function or something to fix this?

In the different scenes, does your character use some sort of character controller and is the camera parent to them at the start?

Camera is actually a child of the gameObject at start. I have an empty object, which is the character, and then children of the object is the GUI, the camera, and the model.