What is the best way to control multiple characters in game?

Hello, I’m making a simple action game, and there are 3 different characters that I can choose(say, characterA,B,C).
I start game with A and can always switch my current character to B or C. Of course, B must be on the same place where A was. These characters have different skill, HP… etc.

I made empty ‘Player’ gameobject, and put character gameobject as a child.

I want to know where to put character controller. Is it better to control characters in ‘Player’ object, or in each ‘Character’ object?
Is it better to have all three characters as children(set only current character active), or instantiate current character and destroy it when I switch to another character?
Where to check collision(in Player or character)?

I need simple guideline for this. Thank you for your help in advance. :slight_smile:

This is personal preference, and can change from project to project, but in my case I would do:

  1. Put all three characters as a child of Player GameObject, because its easier to identify which character the player wants to use.
  2. Every child with its own Character Controller, because I have a better control of the position and more freedom to do changes in the future (All characters can be in any position at any time I want).
  3. Have as active the current character and not destroy the other instances, because of the garbage it generates. Always try to reuse instead of initiliaze → destroy lifecycle. (Sometimes there are exceptions but not in this case).
  4. Check collisions on every child (character), because it gives you more modularity and the collision detection gets easier to identify.