Персонаж просто так умирает

Рейтинг: 0Ответов: 0Опубликовано: 11.08.2023

Есть персонаж, который при прикосновении к врагу теряет хп, есть код

  public class PlayerHealthbar : MonoBehaviour
{
    [SerializeField] private Image progressImage;
    private int currentHP;
    private int maxHP;
    private float percentHP;

    private void OnEnable()
    {
        
        EventBus.Instance.PlayerInit += SetStartHP;
        EventBus.Instance.PlayerHealed += OnPlayerHealed;
        EventBus.Instance.PlayerDamaged += OnTookDamage;
    }
    
    private void OnDisable() 
    {
        EventBus.Instance.PlayerHealed -= OnPlayerHealed;
    }

    private void Awake() 
    {
        progressImage = GetComponent<Image>();
    }

    private void SetStartHP(int hp)
    {
        Debug.Log($"player has {hp}");
        maxHP = hp;
        currentHP = maxHP;
        Debug.Log($"cur hp is {currentHP}");
    }
    
    private void OnTookDamage(int damage)
    {
        if(currentHP <= 0) {
            Destroy(gameObject);
        }
        else {
            currentHP -= damage;
            progressImage.fillAmount -= (float)damage / currentHP;
            Debug.Log($"cur hp is {currentHP}");
        }
    }

    private void OnPlayerHealed(int amountOfRecover)
    {
        currentHP += amountOfRecover;
        progressImage.fillAmount += (float)amountOfRecover / currentHP;
        Debug.Log($"Player recovered {amountOfRecover}");
        Debug.Log($"cur hp is {currentHP}");
    }

Проблема заключается в том что персонаж умирает моментально при прикосновении к врагу, при этом дебаги отображают правильно хп, мол оно есть, но перс умер, не могу понять в чем проблема. Вот метод нанесения дамага врагом

    private void OnTriggerEnter2D(Collider2D other) 
{
    if(other.gameObject.tag == "Player")
    {
        EventBus.Instance.PlayerDamaged?.Invoke(damage);
    }
}

Вот состояние риджит бади объектов введите сюда описание изображения введите сюда описание изображения

Вот логи

введите сюда описание изображения

Ответы

Ответов пока нет.