- Home /
Grouping Enemies/Targets
I am working on a few survival mode missions with waves of enemies and I can't figure out how to group enemies in order to know when the first wave is dead&gone and the next should pop up. Any ideas? Links? Thanks in advance!
Answer by Joshua · May 23, 2011 at 03:37 PM
per wave of enemies create an array of gameObjects: var currentWave : GameObject[]. Make it the length of the number of enemies in the wave and add all the newly instantiated enemies of that wave into the array. When an enemy is destroyed it's corresponding element in the array will turn to null. When all the entries are null you know every creature in the wave is destroyed.
Alternatively use JS arrays, but they are a lot less fast when you use them a lot. See what works best for you. Read up on arrays here.
The speed discussion of arrays vs lists is pretty pointless since they both access very quickly. You won't be noticing any major differences until you start to reach into the millions of items. Often the actual processing of each item overwhelms the difference of access speeds. See http://answers.unity3d.com/questions/38479/is-listt-as-fast-to-access-as-a-standard-array.html for an experimental approach. Even though the answer begins as saying arrays are faster than lists, as the discussion progress it becomes clear this "performance boost" is so tiny it's negligible.
From my understanding the difference is quite significant when targeting mobile devices. Also in this case it could become apparent if you have a hundred of swarm creatures a wave and a few waves on the screen you would iterating over 5*100(*60fps)= 30.000 a second , meaning 1.8 million a $$anonymous$$ute - so talking 'millions of items' isn't that far fetched. And looking at the question you linked to, I'm not discussing arrays versus lists - I'm discussing JS arrays vs Built-in Arrays (point #2 and #3 on the wiki).
However I have not much personal experience comparing them, so all I'm saying is information thatI've gathered from the doc's (which say the same!) and more experienced Dev's then me - like you obviously are - so if you could tell me where/how I'm wrong please explain ^^
@Statement: I think you should read his post carefully ;) List and native arrays are quite similar. But the JS Array class is slower because it uses dynamically typed elements. The access time to one element is the same as List but the type check will slow it down.