Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by cubelord · Dec 01, 2011 at 10:41 AM · enemyspawnenemy spawn

enemy wave spawn script wont work

i have a problem my scrip spawns 1 set of enemies but then the other set dosnt appear even thow ive set it up all right with the spawn point and all that and the enemies have A SCRIPT HERE IS THE CODE FOR MY SPAWNING

 using UnityEngine;
 
 using System.Collections;
 
 using System.Collections.Generic;
 
 
 
 public class Spawner : MonoBehaviour
 
 {
 
     // Color of the gizmo
 
     public Color gizmoColor = Color.red;
 
     
 
     //-----------------------------------
 
     // All the Enums
 
     //-----------------------------------
 
     // Spawn types
 
     public enum SpawnTypes
 
     {
 
         Normal,
 
         Once,
 
         Wave,
 
         TimedWave
 
     }
 
     // The different Enemy levels
 
     public enum EnemyLevels
 
     {
 
         Easy,
 
         Medium,
 
         Hard,
 
         Boss
 
     }
 
     //---------------------------------
 
     // End of the Enums
 
     //---------------------------------
 
     
 
     // Enemy level to be spawnedEnemy
 
     public EnemyLevels enemyLevel = EnemyLevels.Easy;
 
     
 
     //----------------------------------
 
     // Enemy Prefabs
 
     //----------------------------------
 
     public GameObject EasyEnemy;
 
     public GameObject MediumEnemy;
 
     public GameObject HardEnemy;
 
     public GameObject BossEnemy;
 
     private Dictionary<EnemyLevels, GameObject> Enemies = new Dictionary<EnemyLevels, GameObject>(4);
 
     //----------------------------------
 
     // End of Enemy Prefabs
 
     //----------------------------------
 
 
 
     //----------------------------------
 
     // Enemies and how many have been created and how many are to be created
 
     //----------------------------------
 
     public int totalEnemy = 10;
 
     private int numEnemy = 0;
 
     private int spawnedEnemy = 0;
 
     //----------------------------------
 
     // End of Enemy Settings
 
     //----------------------------------
 
 
 
     
 
     // The ID of the spawner
 
     private int SpawnID;
 
     
 
     //----------------------------------
 
     // Different Spawn states and ways of doing them
 
     //----------------------------------
 
     private bool waveSpawn = false;
 
     public bool Spawn = true;
 
     public SpawnTypes spawnType = SpawnTypes.Normal;
 
     // timed wave controls
 
     public float waveTimer = 30.0f;
 
     private float timeTillWave = 0.0f;
 
     //Wave controls
 
     public int totalWaves = 5;
 
     private int numWaves = 0;
 
     //----------------------------------
 
     // End of Different Spawn states and ways of doing them
 
     //----------------------------------
 
     void Start()
 
     {
 
         // sets a random number for the id of the spawner
 
         SpawnID = Random.Range(1, 500);
 
         Enemies.Add(EnemyLevels.Easy, EasyEnemy);
 
         Enemies.Add(EnemyLevels.Boss, BossEnemy);
 
         Enemies.Add(EnemyLevels.Medium, MediumEnemy);
 
         Enemies.Add(EnemyLevels.Hard, HardEnemy);
 
     }
 
     // Draws a cube to show where the spawn point is... Useful if you don't have a object that show the spawn point
 
     void OnDrawGizmos()
 
     {
 
         // Sets the color to red
 
         Gizmos.color = gizmoColor;
 
         //draws a small cube at the location of the gam object that the script is attached to
 
         Gizmos.DrawCube(transform.position, new Vector3 (0.5f,0.5f,0.5f));
 
     }
 
     void Update ()
 
     {
 
         if(Spawn)
 
         {
 
             // Spawns enemies everytime one dies
 
             if (spawnType == SpawnTypes.Normal)
 
             {
 
                 // checks to see if the number of spawned enemies is less than the max num of enemies
 
                 if(numEnemy < totalEnemy)
 
                 {
 
                     // spawns an enemy
 
                     spawnEnemy();
 
                 }
 
             }
 
             // Spawns enemies only once
 
             else if (spawnType == SpawnTypes.Once)
 
             {
 
                 // checks to see if the overall spawned num of enemies is more or equal to the total to be spawned
 
                 if(spawnedEnemy >= totalEnemy)
 
                 {
 
                     //sets the spawner to false
 
                     Spawn = false;
 
                 }
 
                 else
 
                 {
 
                     // spawns an enemy
 
                     spawnEnemy();
 
                 }
 
             }
 
             //spawns enemies in waves, so once all are dead, spawns more
 
             else if (spawnType == SpawnTypes.Wave)
 
             {
 
                 if(numWaves < totalWaves + 1)
 
                 {
 
                     if (waveSpawn)
 
                     {
 
                         //spawns an enemy
 
                         spawnEnemy();
 
                     }
 
                     if (numEnemy == 0)
 
                     {
 
                         // enables the wave spawner
 
                         waveSpawn = true;
 
                         //increase the number of waves
 
                         numWaves++;
 
                     }
 
                     if(numEnemy == totalEnemy)
 
                     {
 
                         // disables the wave spawner
 
                         waveSpawn = false;
 
                     }
 
                 }
 
             }
 
             // Spawns enemies in waves but based on time.
 
             else if(spawnType == SpawnTypes.TimedWave)
 
             {
 
                 // checks if the number of waves is bigger than the total waves
 
                 if(numWaves <= totalWaves)
 
                 {
 
                     // Increases the timer to allow the timed waves to work
 
                     timeTillWave += Time.deltaTime;
 
                     if (waveSpawn)
 
                     {
 
                         //spawns an enemy
 
                         spawnEnemy();
 
                     }
 
                     // checks if the time is equal to the time required for a new wave
 
                     if (timeTillWave >= waveTimer)
 
                     {
 
                         // enables the wave spawner
 
                         waveSpawn = true;
 
                         // sets the time back to zero
 
                         timeTillWave = 0.0f;
 
                         // increases the number of waves
 
                         numWaves++;
 
                         // A hack to get it to spawn the same number of enemies regardless of how many have been killed
 
                         numEnemy = 0;
 
                     }
 
                     if(numEnemy >= totalEnemy)
 
                     {
 
                         // diables the wave spawner
 
                         waveSpawn = false;
 
                     }
 
                 }
 
                 else
 
                 {
 
                     Spawn = false;
 
                 }
 
             }
 
         }
 
     }
 
     // spawns an enemy based on the enemy level that you selected
 
     private void spawnEnemy()
 
     {
 
         GameObject Enemy = (GameObject) Instantiate(Enemies[enemyLevel], gameObject.transform.position, Quaternion.identity);
 
         Enemy.SendMessage("setName", SpawnID);
 
         // Increase the total number of enemies spawned and the number of spawned enemies
 
         numEnemy++;
 
         spawnedEnemy++;
 
     }
 
     // Call this function from the enemy when it "dies" to remove an enemy count
 
     public void killEnemy(int sID)
 
     {
 
         // if the enemy's spawnId is equal to this spawnersID then remove an enemy count
 
         if (SpawnID == sID)
 
         {
 
             numEnemy--;
 
         }
 
     }
 
     //enable the spawner based on spawnerID
 
     public void enableSpawner(int sID)
 
     {
 
         if (SpawnID == sID)
 
         {
 
             Spawn = true;
 
         }
 
     }
 
     //disable the spawner based on spawnerID
 
     public void disableSpawner(int sID)
 
     {
 
         if(SpawnID == sID)
 
         {
 
             Spawn = false;
 
         }
 
     }
 
     // returns the Time Till the Next Wave, for a interface, ect.
 
     public float TimeTillWave
 
     {
 
         get
 
         {
 
             return timeTillWave;
 
         }
 
     }
 
     // Enable the spawner, useful for trigger events because you don't know the spawner's ID.
 
     public void enableTrigger()
 
     {
 
         Spawn = true;
 
     }
 
 }
Comment
Add comment · Show 1
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image syclamoth · Dec 01, 2011 at 11:00 AM 2
Share

Some tips for getting useful answers- don't expect people to read through walls of text like that. I don't want to have to analyse your entire script to work out that it's a one-line problem- keep it down to the bit where you think the problem is actually occurring.

0 Replies

· Add your reply
  • Sort: 

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

3 People are following this question.

avatar image avatar image avatar image

Related Questions

How do i spawn an enemy but with a randomized direction everytime it spawns? 1 Answer

Problem with the enemy 0 Answers

Trying out a unique method of spawning enemies. Someone want to help sort out the logic of it? 1 Answer

delay first spawn 2 Answers

Spawning Objects at location 3 Answers


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges