bonjour 🙂
alors voila j’ai trouver sur le net un script fait part un anglophone qui permet de crée des vagues de zombies.
tout marche nickel sauf que je veut rajouter entre chaque vague une pause pour permettre au joueur de respiré un peu.
donc je fais ma fonction “Pause avec un yieldWaitForSeconds et relance la fonction “UpdateWave” qui rajoute 1 manche avant de relancer la fonction “SpawnEnnemies”.
le soucie s’est que ma fonction “Pause” tourne en boucle après qu’il est fait sa pause et donc me rajoute une manche par frame qui fait bugger tout le script.
jaurais besoin de votre aide pour réglé ce soucie.
merci d’avance pour vos réponse ^^
le script :
<pre class=”lang:js decode:true ” >
#pragma strict
var spawnPoints : Transform[];
var ennemyPrefabs : GameObject[];
var yieldTimeMin = 2;
var yieldTimeMax = 5 ;
var yieldTimePause = 60;
var ennemyCounter= 0;
var spawnXOffsetMin = 0;
var spawnXOffsetMax = 0;
var spawnZOffsetMin = 0;
var spawnZOffsetMax = 0;
var defaultSpawnNumber = 5;
var waveNumber = 1;
var isSpawning = false;
var Zombie = ennemyPrefabs;
function SpawnEnnemies(wave : int){
var spawnNum = (defaultSpawnNumber + 5 * (wave - 1));
isSpawning = true;
for(var i = 0; i < spawnNum;i++){
yield WaitForSeconds(Random.Range(yieldTimeMin, yieldTimeMax));
var object : GameObject = ennemyPrefabs[Random.Range(0,ennemyPrefabs.Length)];
var position : Transform = spawnPoints[Random.Range(0,spawnPoints.Length)];
Instantiate(object, position.position + Vector3(Random.Range(spawnXOffsetMin, spawnXOffsetMax), 0, Random.Range(spawnZOffsetMin, spawnZOffsetMax)), position.rotation);
ennemyCounter++;
}
isSpawning = false;
}
function UpdateWave() {
waveNumber++;
SpawnEnnemies(waveNumber);
}
function Start () {
SpawnEnnemies(waveNumber);
}
function Update () {
if(ennemyCounter ==0 && !isSpawning){
Pause();
//UpdateWave();
}
}
function Pause (){
yield WaitForSeconds(yieldTimePause);
UpdateWave();
Debug.Log(“pause fini”);
}
function KillZombie (){
ennemyCounter-;
Debug.Log (“un ennemi en moin”);
}
-
Ce sujet a été modifié le il y a 2 ans et 6 mois par
alec 2026.