- Home /
Adding a component of object to an array
Hi guys,
I want to add a specific component of the object to an array while I am spawning that object.
So I have this code for spawning, adding the component to an array, and other stuff. So, the array is in a other script named "gameManager", and the array's name is "mutants", in this update method I am spawning mutant and then adding them to the array, so my archers can select a target from the array. and I need to put Mutant behavior component to array because mutant behavior script have the health and other stuff.
Right now my archers are hitting only one enemy, then they stop. i need
void Update() { if (gameManager.gameState == "RUNNING") { timer += Time.deltaTime; if (timer > delay) { timer = 0; if (numMutants < numMaxMutants) { for (int x = 0; x <= numToSpawn; x++) { // instantiate a mutant prefab at some random point within 10 units in the X, and Z axis' Vector3 spawnPoisition = gameObject.transform.position; spawnPoisition.x += Random.Range(0.0f, 10.0f); spawnPoisition.z += Random.Range(0.0f, 10.0f); Instantiate(mutant, spawnPoisition, Quaternion.identity); // increment numMutants here and on the game manager numMutants++; gameManager.numMutants++; // add the mutantbehavior object (component on the mutant game object) to the arraylist of mutants on the game manager gameManager.mutants.Insert(numMutants - 1, GameObject.FindGameObjectWithTag("Enemy").GetComponent<MutantBehavior>()); // set "Invaders on the field' bool on game manager to true; gameManager.invadersOnField = true; } } } } } }
Answer by unity_ek98vnTRplGj8Q · Dec 16, 2019 at 08:09 PM
FindGameObjectWithTag is going to find the first "Enemy" you placed in the scene. Try instead GameObject mutantInst = Instantiate(...);
and then gameManager.mutants.Add(mutantInst.GetComponent<MutantBehavior>());
Your answer
Follow this Question
Related Questions
Create a function that spawn player (wich datas are stored in an array) randomly 4 Answers
How do I spawn an object under another moving object at random in C#? 1 Answer
Why does instantiating a prefab break the original's behaviour 2 Answers
How to only destroy the object the i am in. 3 Answers
Space Shooter: How can I spawn the asteroids more than once? 3 Answers