Adjusted colliders to make them simpler (instead of one for each 'figure' use fewer only where necesary to avoid overlapping an unnecesary computing... i guess)
Added functional scripts to each prefab for their behavior
Enemy movement
Added enemy movement for those enemies that are able to move (The flying chaser and the walking tank)
They should move when a flag that says that they should chase the player is TRUE
This flag is controlled either by their spawn (soon) or by the 'Enemy zone' where they are currently instanced
The enemy will stop when it's in range of attack or when, for some reason it's told to stop the chase (used by 'Enemy zone')
Enemy targeting
Added a way for each enemy to look at the player when it's enter it's range
Added movement on a specific pivot to accompany this behavior, each enemy class has its own way of 'looking' at the player
The flying chaser is a simple rotation on all axis
The Turret moves around it's neck's joint
The walking tank was a challenge since it had to do two different movements, one on the whole game-object and another only pivoting it's 'head'
This is used for both a better feeling of the enemy behavior and for actual targetting (since the direcion of 'looking at' the player is the same direction where the bullet is launch when the attack is initiated
Enemy zone
Added a prefab to delimit a trigger zone, inside this zone the enemies are allowed to attack and move towards the player
A simple 'onTriggerEnter' and 'onTriggerExit' is used to determinate if the enemies on the zone can attack the player or the should stop both their attack and the chase
This trigger (and it's only element that triggers it, an object inside the 'Lancer' player) exists on it's own layer, to avoid potential issues
The zone has a list of enemies whose 'flags' are controlled by the zone
This list is set manually, and it's intentional to allow a better enemy handling and help with level design
Enemy weapons
All the enemies launch the same 'bullet' only altering it's speed and size (and next, damage); this is intentional to make it look like some kind of 'bullet hell'.
Added all the necessary logic for bullet handling
Added several stats related to the bullet launch by the enemy on 'EnemyStats'
Added a prefab of the bullet with it's own script for collision
The collision are (for now) physic based, but they register on it's own layer (the bullets are on ONE layer and the 'targets' are in a SEPARATED layer)
Added a pooling system and a 'BulletPool' to have all the necessary bullets instantiated at once and just moved around when needed, this was done for performance reasons
the 'GameController' controls this pool
when a bullet collides, its initialized and then sent to the pool again to be re-used
A hard limit is currently in use, if the pool is out of bullets, the enemies won't be able to fire again.
Added a prefab 'BulletBox' to be used help with level design, since the bullets only register on a specific layer, this should be used to make a general limit for the stage and as a 'wall' when needed in a map.
Oh boy, this one is big.
General stuff
Added functional scripts to each prefab for their behavior
Enemy movement
Enemy targeting
Enemy zone
This list is set manually, and it's intentional to allow a better enemy handling and help with level design
Enemy weapons
All the enemies launch the same 'bullet' only altering it's speed and size (and next, damage); this is intentional to make it look like some kind of 'bullet hell'.