Наткнулся на проблему с таргетом врага на игрока, хотел написать чтобы Enemy по одной линии с игроком нападал

Выдало 22 ошибки:

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

public class Enemy2DControl : MonoBehaviour

{
   private Rigidbody2D physic;

   public Transform Player;

   public float speed;

   public float agroDistance;
    
    void Start()
    {
      physic = GetComponent<Rigidbody2D>();
    }

  
    void Update()
    {
        float distTopPlayer = Vector2.Distance(transform.position,player.position);

        if(distTopPlayer < agroDistance)
        {
            StartHunting();
        }
        else
        {
            StopHunting();
        }
    }
    void StartHunting();
    {
        if(player.position.x < transform.position)
        {
            physic.velocity = new Vector2(-speed, 0);
        } 
        else if(player.position.x > transform.position)
        {
             physic.velocity = new Vector2(speed, 0);
        }
        void StopHunting()
        {
             physic.velocity = new Vector2(0,0) ;
    }
}

Ответы (1 шт):

Автор решения: KOTlK
  1. Удалите ; в строке void StartHunting();

  2. Вынесите метод StopHunting() из метода StartHunting()

  3. Регистр важен, поле называется Player, а обращаетесь к player, которого не существует.

  4. if (player.position.x < transform.position) сравниваете float и Vector3.

  5. Скачайте Visual Studio, она подскажет вам, где находятся ошибки. Не нужно писать код в блокноте, используйте нормальные IDE.

→ Ссылка