Mise en place du dossier Resources
Les obstacles seront instanciés à partir de préfabs. Prendre soin de créer un dossier nommé Resources dans le dossier des Assets. Y mettre les prefabs des obstacles à instancier.

Mise en place du spawner d’obstacles (ObstacleSpawner)
Créer sur la scène un EmptyObject et le nommer ObstacleSpawner.
Positionner ce Spawner à l’endroit d’où surgiront les obstacles.

Mise en place du script du spawner (ObstacleSpawnerController)
Créer un script de génération d’obstacles ObstacleSpawnerController

Version sans coroutine
public class ObstacleSpawnerController : MonoBehaviour { Vector3 spawnPosition; public float spawnRate; // Start is called before the first frame update void Start() { spawnPosition = transform.position; StartSpawningObstacles(); } // Update is called once per frame void Update() { } void Spawn() { // Récupérer aléatoirement un obstacle depuis les ressources à partir de son nom var obstacle = Resources.Load("Obstacle" + Random.Range(minValue, maxValue)); // Instanciation d'un obstacle Instantiate(obstacle, spawnPosition, Quaternion.identity) ; } void StartSpawningObstacles() { InvokeRepeating("Spawn", 1f, spawnRate); } void StopSpawningObstacles() { CancelInvoke("Spawn"); } }
Version avec coroutine
public class ObstacleSpawnerController : MonoBehaviour { Vector3 spawnPosition; public float spawnRate; // Start is called before the first frame update void Start() { spawnPosition = transform.position; StartCoroutine("SpawnObstacles"); } // Update is called once per frame void Update() { } void Spawn() { // Récupérer aléatoirement un obstacle depuis les ressources à partir de son nom var obstacle = Resources.Load("Obstacle" + Random.Range(minValue, maxValue)); // Instanciation d'un obstacle Instantiate(obstacle, spawnPosition, Quaternion.identity) ; } IEnumerator SpawnObstacles() { while(true) { Spawn(); yield return new WaitForSeconds(spawnRate); } } }
Ne pas oublier
– Assigner le script ObstacleSpawnerController à l’objet ObstacleSpawner
– Fournir une valeur au taux d’apparition
