/// <summary> /// Configures the movement of the enemy plane. Movement will be lateral from one side to the other /// </summary> public override void ConfigureMovement(Common.Side side) { Side = side; switch (Side) { case Common.Side.LEFT: movement = new Vector2(-speed.x, speed.y); break; case Common.Side.RIGHT: movement = new Vector2(speed.x, speed.y); break; } rigidb.velocity = movement; }
/// <summary> /// Creates a wave of column enemies on one spawn side /// </summary> /// <param name="spawnArea">Spawn area.</param> /// <param name="side">Side.</param> void CreateWave(SpawnArea spawnArea, Common.Side side, EnemyType enemyType) { string enemyName = "ColumnEnemy"; switch (enemyType) { case EnemyType.SIDE: enemyName = "SideEnemy"; break; case EnemyType.COLUMN: enemyName = "ColumnEnemy"; break; } GameObject enemyInstantiate = ObjectPooler.Instance.GetPooledObject(enemyName); enemyInstantiate.transform.position = new Vector3( Random.Range(spawnArea.area.xMin, spawnArea.area.xMax), Random.Range(spawnArea.area.yMin, spawnArea.area.yMax), 0f ); enemyInstantiate.GetComponent <EnemyBase>().ConfigureMovement(side); }
/// <summary> /// Configures the movement of the enemy plane. /// </summary> public abstract void ConfigureMovement(Common.Side side);