Враг убивается если на него прыгнуть сверху, изначально проблема заключалась в том что урон при прыжке наносился и врагу и игроку, исправил, но теперь другая проблема, когда враг движется с левой стороны то урон не наносится, а если с правой наносится (2 сердечка). что нужно чтоб и с правой стороны урон проходил
Вот скрипт получения урона, закреплен за врагом и игроком:
public class CollisionDamage : MonoBehaviour
{
public int damage = 10;
public string collisionTag;
GameObject enemy;
GameObject player;
private void OnCollisionEnter2D(Collision2D coll)
{
Health healthE = enemy.GetComponent<Health>();
Health healthP = player.GetComponent<Health>();
if (coll.gameObject.CompareTag(collisionTag)) //tag enemy
{
foreach (ContactPoint2D point2D in coll.contacts)
{
if (point2D.normal.y >= 0.5f)
{
//Destroy(enemy.gameObject);
healthE.takeDamage(damage);
}
if (point2D.normal.x >= 0.5f)
{
healthP.takeDamage(damage);
}
}
}
}
private void Start()
{
enemy = GameObject.FindWithTag("Enemy");
player = GameObject.FindWithTag("Player"); //GameObject.FindGameObjectWithTag("Player");
}
}
Согласен, возможно не совсем правильно делаю, но как быть в этой ситуации? проблема возникает когда враг меняет сторону (flipX)?