private void FireProjectile() { Arrow.gameObject.SetActive(false); if (Arrows == null) { Arrows = new List <Projectile>(); } int? projectileIndex = null; Projectile arrowP = FightUtils.GetAvailableProjectile(Arrows, CreateArrow, _onHit, FightUtils.OppositeTeam(Intell.IAm), ref projectileIndex); if (arrowP == null && projectileIndex != null) { arrowP = Arrows[projectileIndex.Value]; } else { Arrows.Add(arrowP); projectileIndex = Arrows.Count; } var pos = Intell._attackController.GetEnemyTargetPosition(); // fire projectile arrowP.Fire(pos, transform.eulerAngles); }
private void FireProjectile() { if (Projectiles == null) { Projectiles = new List <Projectile>(); } for (var i = 0; i < 3; i++) { int? projectileIndex = null; Projectile sharpnell = FightUtils.GetAvailableProjectile(Projectiles, CreateShrapnell, _onHit, FightUtils.OppositeTeam(Intell.IAm), ref projectileIndex); if (sharpnell == null && projectileIndex != null) { sharpnell = Projectiles[projectileIndex.Value]; } else { Projectiles.Add(sharpnell); projectileIndex = Projectiles.Count; } // Debug.Log( // __debug.DebugList<GameObject>(ShrapnellPos, "ShrapnellPos", (go) => // { // return go.name; // }) // ); if (__list.isNilOrEmpty(ShrapnellPos) == false) { sharpnell.Fire( transform.TransformPoint(ShrapnellPos[i].transform.position), transform.eulerAngles); } } }