using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Enemy_Run : StateMachineBehaviour
{
public float speed = 10f;
public float attackRange = 10f;
private Transform player;
Rigidbody2D rb;
LookPlayer lookPlayer;
// OnStateEnter is called when a transition starts and the state machine starts to evaluate this state
override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
{
player = GameObject.FindGameObjectWithTag("Player").transform;
rb = animator.GetComponent<Rigidbody2D>();
lookPlayer = animator.GetComponent<LookPlayer>();
if (player.GetComponent<PlayerStats>().currentHealth <= 0)
{
animator.SetTrigger("PlayerDied");
}
}
// OnStateUpdate is called on each Update frame between OnStateEnter and OnStateExit callbacks
override public void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
{
lookPlayer.LookAtPlayer();
Vector2 target = new Vector2(player.position.x, rb.position.y);
Vector2 newPos = Vector2.MoveTowards(rb.position, target, speed * Time.fixedDeltaTime);
rb.MovePosition(newPos);
if(Vector2.Distance(rb.position, player.position) <= attackRange)
{
animator.SetTrigger("Attack");
}
}
// OnStateExit is called when a transition ends and the state machine finishes evaluating this state
override public void OnStateExit(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
{
animator.ResetTrigger("Attack");
}
}