Отвечая на мой вопрос и благодарив босса, который решил мой вопрос выше, здесь идет мое исправление на случай, если кому-то понадобится визуализировать пример.
private IEnumerator BasicAttackBehaviour2()
{
canAttack = false;
RaycastHit2D[] raycastHits = Physics2D.CircleCastAll(attackPos, attackRange, directionLookingAt, 0, whatIsEnemies);
for(int i = 0; i < raycastHits.Length; i++)
{
Vector2 pointHitten = raycastHits[i].point;
raycastHits[i].collider.gameObject.GetComponent<Enemy>().TakeDamage(damage, pointHitten);
}
PlayAttackAnimation();
yield return new WaitForSeconds(attackDelay);
canAttack = true;
}
Используя CircleCastAll, я могу получить точкуRaycastHit2D и передать его врагу.
И затем я могу отобразить эффект крови на правильной позиции удара.
public void TakeDamage(int damage, Vector2 pointHitten)
{
health -= damage;
GameObject bloodEffect = Instantiate(takenDamageVFX, pointHitten, transform.rotation);
}