public static Vector3 GetRandomSpawnpoint() { ZombieSpawn spawn = GetRandomSpawn(); Vector3 spawnPos = spawn.transform.position + Random.insideUnitSphere * spawn.Radius; if (NavMesh.SamplePosition(spawnPos, out NavMeshHit hit, spawn.Radius * 2, 1)) { spawnPos = hit.position; } return(spawnPos); }
private IEnumerator ZombieSpawner(int waveSize) { //Debug.Log("Start Spawning Zombies!"); for (int i = waveSize; i > 0; i--) { if (spawnZombies) { SpawnZombie(ZombieSpawn.GetRandomSpawnpoint()); //Spawn zombie AND SEND UP NORMAL ASWELL } yield return(new WaitForSeconds(zombieSpawnRate)); } }
void Start() { hudTexte = HUD.GetComponentInChildren <Text>(); SetCibleAleatoire(); ZombieSpawn = this.GetComponent <ZombieSpawn>(); //Place les groupes de lumieres dans une liste foreach (GroupeLampe groupeL in lumiereCouloirs.GetComponentsInChildren <GroupeLampe>()) { groupeLampeCouloirs.Add(groupeL); } }
Vector3 AdjustPositionToTerrain(ZombieSpawn currentZombie) { Vector3 outVector = new Vector3(0, -100, 0); RaycastHit hit; Ray ray = new Ray(currentZombie.originalPosition + currentZombie.container.transform.position, -currentZombie.zombie.transform.up); int layerMask = 1 << terrainLayer; if (Physics.Raycast(ray, out hit, Mathf.Infinity, layerMask)) { if (hit.collider != null) { outVector = hit.point; } } return(outVector); }
IEnumerator Spawner(ZombieSpawn z) { for (;;) { if (Vector3.Distance(z.zombie.transform.position, target.transform.position) > spawnDistance && z.container.CompareTag("ChaserZ")) { yield return(new WaitForSeconds(timeBetweenSpawn)); } if (Vector3.Distance(z.zombie.transform.position, target.transform.position) > spawnDistance) { z.zombie.SetActive(false); if (z.container.CompareTag("ChaserZ")) { yield return(new WaitForSeconds(timeBetweenSpawn)); z.container.transform.position = target.transform.position; NavMeshAgent navMesh = z.zombie.GetComponent <NavMeshAgent>(); if (navMesh) { navMesh.enabled = true; z.zombie.transform.localPosition = z.originalPosition; navMesh.Warp(AdjustPositionToTerrain(z)); } else { z.zombie.SetActive(false); } if (zombieHordesActive) { z.zombie.SetActive(true); } } } else { if (zombieHordesActive || z.container.CompareTag("StationZ")) { z.zombie.SetActive(true); } } yield return(null); } }
void Start() { player = GameObject.FindObjectOfType <Player>(); zombieSpawn = GameObject.FindObjectOfType <ZombieSpawn>(); speed_zombie = Random.Range(2, 3); }
private void _on_SpawnOver(ZombieSpawn spawn) { this.isRoundOver(); }