Hi all, just wondering if I would be able to get some help with scaling gameobjects through code when they are instantiated from an initial game object. My game is a 2D top down fixed camera view chase and evade game. I am inexperienced when it comes to programming and using unity and so have had trouble identifying what I am doing wrong and why my game is not working as intended.
I have already created a spawning method which is working fine, it eventually spawns 12 enemies (who are instantiated clones from the initial enemy) at random positions throughout my games map. Enemies are spawned once every 2 seconds. The initial enemy in my game is called Mouse and the other enemy clones that I instantiate from this are the mice. I wanted all the enemies to be spawned with random scales, creating differently sized enemies. However when they are spawned they all have the same scale as the initial enemy from which they are instantiated. I expected my code to give the enemies randomly generated different sizes. Below is my code from the spawning class which contains the spawning method and the scaling method. Any help would be greatly appreciated.
public class Spawning : MonoBehaviour
{
public GameObject[] mice;
private Vector2 startposition;
public int amount;
public Transform Mouse;
private int startweight;
void Update()
{
mice = GameObject.FindGameObjectsWithTag("Enemies"); //
amount = mice.Length;
if (amount != 12)
{
InvokeRepeating("EnemySpawn", 2f, 5f);
}
}
void EnemySpawn()
{
startposition.x = Random.Range(-10, 10);
startposition.y = Random.Range(-10, 10);
Instantiate(mice[UnityEngine.Random.Range(0, mice.Length - 1)], startposition, Quaternion.identity);
CancelInvoke();
}
void EnemyWeight()
{
startweight = Random.Range(1, 20);
foreach (GameObject mouse in mice)
{
mouse.gameObject.transform.localScale = new Vector2(Mouse.localScale.x * startweight, Mouse.localScale.y * startweight);
}
}
}