Наткнулся на проблему с таргетом врага на игрока, хотел написать чтобы 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
→ Ссылка
Удалите
;в строкеvoid StartHunting();Вынесите метод
StopHunting()из методаStartHunting()Регистр важен, поле называется
Player, а обращаетесь кplayer, которого не существует.if (player.position.x < transform.position)сравниваетеfloatиVector3.Скачайте
Visual Studio, она подскажет вам, где находятся ошибки. Не нужно писать код в блокноте, используйте нормальные IDE.