Moving gameobjects in relation to another gameobject

I’m sorry if this has been asked before, I’ve looked on the forums for hours and can’t find what I’m looking for. I’m making a “Build A Monster” game (character creator basically). I have different features, body shapes, heads, eyes, etc. My question is, how can I make the individual body parts move to always sit on the torsos that are different sizes when they are selected? Each body part is a separate gameobject in my hierarchy.

You could have each version of a particular body part have unique attachment points (vector3s) that describe where the pieces should connect. So each torso has a “head”, “left arm”, “right arm”, “tail”, etc vector3s defined. Then when you swap torsos, you set the head to the new torso’s head attachment position. When you swap heads/arms/etc, you just instantiate the model at the torso’s attachment point.

You could go so far as to have the torso connect to an attachment on the legs as well so that you could have longer legs or something. This is done in a lot of games when you pull out a sword or shield. Doesn’t matter what weapon, they attach at the hand and some pre-defined point per weapon.

Sorry if that’s not very helpful.

Yeah I’m using UpdateFeature, all it has right now is:

public void UpdateFeature()
{
	choices = Resources.LoadAll<Sprite>("Textures/" + ID);
		
		if (choices == null || renderer == null)
			return;

		if (currIndex < 0)
			currIndex = choices.Length - 1;
		if (currIndex >= choices.Length)
			currIndex = 0;

		renderer.sprite = choices[currIndex];		  	
}

So I guess where I’m confused is how to make each variation align with each other. For arguments sake, let’s say I have 4 each of heads, eyes, nose, mouth, torso, arms, and legs, all different sizes and shapes (4^7 being over 16k possible variations). How do I say “when Head A is selected, scale every set of eyes, nose, and mouth to fit inside of it, and then when I switch to Head B, scale it all to fit that head” without having to write a line of code telling each feature where to go for each variation?

Sorry if that doesn’t make sense. I’m trying to avoid having to import thousands upon thousands of variations into the sprite editor. I’ve made a similar character creator on a very small scale (only 27 variations) using that method, and that took a long time for me to get right.