Hello. I am using a script that when a mouse clicks goes off a certain object all objects linked to the same parent will expand. The parent and the objects do get bigger in a way I’d like. For some reason however, the objects inside the parent ( Empty game object ) get smaller and smaller as you progress into the game. How can this be fixed? This is the script
using UnityEngine;
using System.Collections;
public class Expand : MonoBehaviour {
public Transform parent;
public float expandAmount = 2f;
void OnMouseDown()
{
parent.localScale *=expandAmount;
for(int i =0;i<parent.childCount;i++)
{
parent.GetChild(i).localScale = parent.GetChild(i).localScale/expandAmount;
}
}
}
If clarification on anything is needed, just ask. Thanks
They get smaller because you are dividing( / ) by the expand amount. if you want them to expand by a factor of 2 you need to multiply( * ) by the expand amount.
If i understand you correctly, you want the childs of the parent to increase equally in size right?
Then you should also use the ∗ operator inside the for loop to multiply by the expand ammount instead of /.
BTW: You can also set the child size with ∗= or /= as you did with the parent.
Since i’m not allowed to post a reply:
I don’t know if the parent will affect the childrens scale or if they just get bigger without any values changing.
Try:
Save the scale/size of the child as a variable (vector3) before changing the parents scale. You can then set the scale back to the original size with the saved variable.