using UnityEngine;
using System.Collections;
public class ChickSpawner : MonoBehaviour
{
public GameObject[] prefabs;
public float spawnRate = 0.35f;
Spwaner spawner;
void Start()
{
spawner = new Spwaner(this.transform, prefabs, spawnRate);
StartCoroutine(spawner.startSpawn());
}
}
using UnityEngine;
using System.Collections;
public class Spwaner:MonoBehaviour
{
public Transform parent;
public GameObject[] prefabs;
public float spawnRate;
public Spwaner(Transform _parent, GameObject[] _prefabs, float _spawnRate)
{
this.parent = _parent;
this.prefabs = _prefabs;
this.spawnRate = _spawnRate;
}
public Spwaner()
{
}
public int getRandomIndex()
{
int randomIndex = Random.Range(0, prefabs.Length);
return randomIndex;
}
public IEnumerator startSpawn()
{
GameObject go = Instantiate(prefabs[getRandomIndex()]) as GameObject;
go.transform.SetParent(parent);
yield return new WaitForSeconds(spawnRate);
StartCoroutine(startSpawn());
}
public IEnumerator stopSpawn()
{
StopCoroutine(startSpawn());
yield return null;
}
}
My startSpawn cannot call startSpawn. Why?