public class enermy : MonoBehaviour
{
public int MaxHealth = 100;
int CurrentHealth;
[SerializeField]
Transform sparwnpoint;
[SerializeField]
Transform player;
[SerializeField]
float AgroRange;
[SerializeField]
float MoveSpeed;
Rigidbody2D rb2d;
public Animator animator;
// Start is called before the first frame update
void Start()
{
CurrentHealth = MaxHealth;
rb2d = GetComponent<Rigidbody2D>();
}
// Update is called once per frame
void Update()
{
//check the distence to the player
float DisToPlayer = Vector2.Distance(transform.position, player.position);
if (DisToPlayer < AgroRange)
{
//code to chase player
ChasePlayer();
}
else
{
//stop chasing player
StopChasingPlayer();
}
animator.SetFloat("Speed", Mathf.Abs(MoveSpeed));
}
void ChasePlayer()
{
if (transform.position.x < player.position.x)
{
//enemry left side of the player, so move right
rb2d.AddForce (new Vector2(MoveSpeed, 0));
transform.localScale = new Vector2(1, 1);
}
else if (transform.position.x > player.position.x)
{
//enemry right side of the player, so move left
rb2d.AddForce (new Vector2(-MoveSpeed, 0));
transform.localScale = new Vector2(-1, 1);
}
}
void StopChasingPlayer()
{
rb2d.AddForce (new Vector2(0, 0));
}
public void TakeDamage(int damage)
{
CurrentHealth -= damage;
//hurt animation
if(CurrentHealth <= 0)
{
transform.position = sparwnpoint.position;
}
}
}