Spawner
Sur cette page tu apprendras comment créer un spawner, objet essentiel à ton projet.
Qu’est-ce qu’un spawner?
Le spawner est un objet ou une position dans un jeu qui peut générer d’autre éléments (ennemis, items, etc)
Il utilise le code “Instantiate” pour cela.
L’avantage d’instantiate est qu’on peut générer les objets dans la direction ou le spawner pointe, ce qui permet de diriger les éléments facilement.
Instantiate(OBJET A FAIRE APPARAITRE, POSITION D’APPARITION, DIRECTION DE L’OBJET);
Ce code s’utilise ou l’on veut, on peut le déclencher avec un input, une collision, etc.
Le script
Ce script est un exemple de spawner qui utilise une liste d’objets, pour en spawner un au hasard toutes les X secondes, avec X qui varie legerement a chaque fois (pour garder le joueur en alerte)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Spawner : MonoBehaviour
{
public GameObject[] objets_a_spawner;
public float Delay;
public float variationDelay;
float timer;
void Start()
{
timer = 5f; //on décide d’un temps avant le premier spawn si on veut
}
void Update()
{
timer -= Time.deltaTime;
if (timer <= 0)
{
Spawn(); //on lance la generation avec une fonction
timer = Delay + Random.Range(-variationDelay, variationDelay); //on spawn avec un delai legerement aléatoire
}
}
void Spawn()
{
int randomIndex = Mathf.RoundToInt(Random.Range(0, objets_a_spawner.Length)); //on choisit un des objets de la liste
GameObject vase = Instantiate(canards[randomIndex], transform.position, transform.rotation); //on genère l’objet choisi
à la position et dans la direction du spawner
}
}