protected virtual bool Hit(RaycastHit hitInfo) { Damagable damagable = hitInfo.collider.GetComponentInParent<Damagable>(); if (damagable != null) { if (damagable.GetTeam() == team) { return false; } if (damage > 0) { damagable.ReceiveDamage(new Damage(damage, damageType)); } } OnHit?.Invoke(damagable); if (hitEffect != null) { GameObject newEffect = Instantiate(hitEffect); newEffect.transform.position = hitInfo.point - velocity.normalized * 0.02f; newEffect.transform.rotation = Quaternion.FromToRotation(Vector3.forward, hitInfo.normal); } Destroy(gameObject); return true; }