-2
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;

public class Health : MonoBehaviour
{
    public int health;
    public int maxHealth;

    public void TakeHit(int damage)
    {
        health -= damage;

        if(health <= 0)
        {
            GetComponent<HeroController>().GameOver();
        }
    }

    public void SetHealth(int bonusHealth)
    {
        health += bonusHealth;

        if(health > maxHealth)
        {
            health = maxHealth;
        }
    }
}

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class EnemyAttack : MonoBehaviour
{

    public int collisionDamage = 10;
    public string collisionTag;

    private void OnCollisionEnter2D(Collision2D collision)
    {
        if(collision.gameObject.tag == collisionTag)
        {
            Health.health = collision.gameObject.GetComponent<Health>();
            health.TakeHit(damage);
        }
    }
}

Вдругом коде не видеть public int health а видет только public class Health

NeAsa
  • 9
  • Если бы ты ещё понимал, что у тебя написано... абсолютный бред – Алексей Шиманский Sep 12 '22 at 17:07
  • @АлексейШиманский может человек плохо русский знает. Не все же догадываются гуглотранслейтом пользоваться. – aepot Sep 12 '22 at 17:59
  • @aepot а я не про его объяснение, а про код – Алексей Шиманский Sep 12 '22 at 18:05
  • @АлексейШиманский я только вот начал пробовать писать игру поэтому я плохо код пишу – NeAsa Sep 13 '22 at 11:34
  • @NeAsa для начала надо выучить основы. В частности язык программирования. Далее научиться читать ошибки, разбираться в них, отлаживать свой код.... а только потом пытаться что-то мелкое делать..... почему все новички даже не изучив азбуку начинают пытаться поэмы писать - меня до сих пор удивляет – Алексей Шиманский Sep 13 '22 at 11:55
  • @АлексейШиманский я знаю что нужно выучить основы но не знаю где искать гайди – NeAsa Sep 13 '22 at 12:14
  • @NeAsa серьёзно? в 2022-ом году, в цифровой век не знаете где искать? Вам случаем не 80 лет? – Алексей Шиманский Sep 13 '22 at 12:16
  • C# https://ru.stackoverflow.com/q/416584/191482 ...... Unity3d - https://ru.stackoverflow.com/q/609900/191482 ........ про поисковик, всякие ютубы и платформы я уж молчу – Алексей Шиманский Sep 13 '22 at 12:16
  • @АлексейШиманский спасибо – NeAsa Sep 13 '22 at 12:18

1 Answers1

2

Ну тут явная ошибка, точка тут лишняя:

            Health.health = collision.gameObject.GetComponent<Health>();
                 ^^^
            health.TakeHit(damage);

Видимо имелось в виду не поле health объекта Health, а собственно сам объект типа Health:

            Health health = collision.gameObject.GetComponent<Health>();
            health.TakeHit(damage);
CrazyElf
  • 71,194