/// <summary> /// Spawns a new gameobject and stores its reference in the board. /// </summary> private void SpawnAnimal() { AnimalBluePrint bluePrint = animalsToSpawn.Dequeue(); GameObject newTile = Instantiate(animalPrefabs[(int)bluePrint.Type], this.transform.position, Quaternion.identity, animalStorage); AnimalTile newAnimalTile = newTile.GetComponent <AnimalTile>(); //Start lerping towards it's target, and store it's reference in the board. newAnimalTile.animalBoard = animalBoard; newAnimalTile.LerpToPosition(bluePrint.TargetPos); animalBoard.SetAnimalInBoard(newAnimalTile, bluePrint.TargetPos); }
/// <summary> /// Call this to add an animal to the wait count. /// </summary> public void AddAnimalToSpawnQueue(IntVector2 targetPos) { AnimalBluePrint newAnimal = new AnimalBluePrint(targetPos); animalsToSpawn.Enqueue(newAnimal); }