Getting the complete size of the children and setting that to parent's size
Hi, so I am trying to make a 2D platformer game which has all these different platforms that are instantiated at random as the player moves along the screen. The problem is that I have a main platform prefab which has all these small bridges and tiles etc that are instantiated whenever the main prefab is created, the number of bridges is selected at random, so I can never tell the exact width of the platform before it is created.
So how do I calculate the complete width of the children of this main prefab and set it equal to the parent's width so I can calculate the total width of the platform?
The main parent prefab only has the Transform component and a script attached to it which generates all the smaller parts.
Here is my script for adding new platforms and instantiating them.
void AddPlatforms(float farthestPlatformEndX) {
// Get a random platform from the array of available Platforms
int randPlatformIdx = Random.Range (0, availablePlatforms.Length);
// Instantiate this platform
GameObject platform = (GameObject)Instantiate (availablePlatforms [randPlatformIdx]);
// size of the platform initiated
float platformWidth = platform.transform.localScale.x;
print ("Width of Platform: " + platformWidth);
// Center of the position where the new platform will be placed
float platformCenter = farthestPlatformEndX + platformWidth * 0.5f;
// Set the position of the new platform
float y_pos = 0.0f;
if (randPlatformIdx == 0) {
y_pos = -3.15f;
} else if (randPlatformIdx == 1) {
y_pos = -4.0f;
}
platform.transform.position = new Vector3(platformCenter + 3, y_pos, 0);
// Store this instance of room in a list to delete later
currentPlatforms.Add(platform);
}
Your answer
Follow this Question
Related Questions
Player Prefab scale automatically goes to 1 x 1 x 1 whereas I have set it to 0.48 x 0.48 x 0.48 1 Answer
Content Size Fitter should scale only in one direction 0 Answers
why did the script change 0 Answers
Scaling a text to fill 50% of screen width and 50% of height, no matter whats inside C# 0 Answers
If statement not getting called after Lerping a Scale 1 Answer