Spawning multiple gameobjects with random scales
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);
}
}
}
Answer by Adam-Mechtley · Nov 28, 2016 at 09:28 AM
Hi! Is your EnemyWeight () function actually getting called anywhere?
Answer by Adamaniac999 · Dec 02, 2016 at 06:01 PM
Thanks Adam, you were right, I wasn't calling the function. I actually ended up talking to my teacher about the error and he helped me out. We eventually got the problem resolved by setting the EnemyWeight () function in the start function of my enemy class. I am now making progress with my game again.
Thanks for the help.
Your answer
Follow this Question
Related Questions
Programming in 2d games 0 Answers
How to add colours to individual letters in an RPG text box scrolling 0 Answers
Collition Coding not working 1 Answer
Dividing touch screen into two touch buttons 0 Answers
Unity alarm clock 0 Answers