Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Ошибка CS1061, ПОМОГИТЕ!!!!!!!!!!!!!!!!!

Руслан Султанов Ученик (172), на голосовании 1 месяц назад
'Enemy' does not contain a definition for 'TakeDamage' and no accesible extension method 'TakeDamage' accepting a first argument of type 'Enemy' could be found
Вот код:
         RaycastHit2D hitInfo = Physics2D.Raycast(transform.position, transform.up, distance, whatIsSolid); 
if (hitInfo.collider != null)
{
if (hitInfo.collider.CompareTag("Enemy"))
{
if (hitInfo.collider.gameObject.tag == "Enemy")
{
hitInfo.collider.GetComponent<Enemy>().TakeDamage(damage);
}
}
DestroyBullet();
}

transform.Translate(Vector2.up * speed * Time.deltaTime);
Дополнен 2 месяца назад
Исправлено
Голосование за лучший ответ
Андрей Панарин Искусственный Интеллект (264187) 2 месяца назад
Здесь у коллайдера запрашивается компонент типа Enemy.
У этого компонента вызывается метод TakeDamage:
  hitInfo.collider.GetComponent<Enemy>().TakeDamage(damage);   
А в классе Enemy точно есть метод TakeDamage?
Можно на него взглянуть?
Руслан СултановУченик (172) 2 месяца назад
можно уточнить про методы? Программировать начал недавно
Андрей Панарин Искусственный Интеллект (264187) У вас в проекте есть файл Enemy.cs? Или другой файл, в котором объявлен «class Enemy»? Посмотрите, есть ли в нем текст «public void TakeDamage» или просто «TakeDamage». Метод — это именованный кусочек кода, который принадлежит классу и который можно вызывать у экземпляров этого класса.
Похожие вопросы