private void OnItemCollider(int index, VirusBase virus) { base.OnUnitFire(index); units[index].SetReady(false); Vector2 cDir = virus.position - units[index].position; Vector2 dir = (cDir + virus.direction).normalized; virus.SetDirection(dir); Unibus.Dispatch(EventBullet.Get(EventBullet.Action.HIT, virus, damage)); ExplosionWeaponCoverItem.Create().Reset(units[index].position, table.explosionSound); }
protected override void OnHit(VirusBase virus) { base.OnHit(virus); if (virus.isAlive && !virus.isInvincible) { Vector2 cDir = virus.position - position; Vector2 dir = (cDir + virus.direction).normalized; virus.SetDirection(dir); Unibus.Dispatch(EventBullet.Get(EventBullet.Action.HIT, virus, damage)); } mHitCount--; if (mHitCount <= 0) { ForceRecycle(); AudioManager.PlaySound(explosionSound); } }