Creating a character from multiple objects

So I’m new to unity and I plan to create a space game. Before I really start to get in depth into it’s creation I want to know about how to go about certain things. What I need to know is what is the best approach to having a character that can change. Lets say I have a ship but I want the player to be able to add extra things to it, like thrusters, or guns etc. but all these parts still need to function as 1 object unless I need to move them individually and I don’t think that is a good approach. So how do I go about creating a character from multiple objects and still have it function as 1, I also need the objects to be added in the game because they will be able to make up to 100’s of combinations.

Thanks in advance

You can use polymorphism and encapsulation like so :

public class PieceOfShip : MonoBehaviour
{ 
   virtual void update(){return;}
   virtual void render(){return;}
}
public class Gun : PieceOfShip
{
   override void update()
  {
   /*your stuff*/
  }
   override void render()
  {
   /*your stuff*/
  }
};
public class Cockpit : PieceOfShip
{
   override void update()
  {
   /*your stuff*/
  }
   override void render()
  {
   /*your stuff*/
  }
};

public class SpaceShip : MonoBehaviour
{
  public Pieces[] pieces;
   void Start()
   {
 
   }

   void Update()
   {
   for(int i=0;i < pieces.Length;++i)
        pieces*.update();*

}

void OnGUI()
{
for(int i=0;i < pieces.Length;++i)
pieces*.render();*
}
};
So actually depending on what you want to do , you will have to be specific and draw something with cubes and arrows just to see what is your analysis .