using UnityEngine;
using UnityEngine.AI;
[RequireComponent(typeof(NavMeshAgent))]
public abstract class MovingEnemy : Enemy
{
public NavMeshAgent m_agent;
public Vector3 m_currentMoveTarget;
public float m_speed;
public float m_maxTraversibleSlopeAngle;
protected override void Start()
{
base.Start();
m_agent = GetComponent<NavMeshAgent>();
m_agent.speed = m_speed;
}
protected override void FixedUpdate()
{
base.FixedUpdate();
Move();
}
protected override void Move()
{
m_agent.destination = m_currentMoveTarget;
if (m_agent.velocity.magnitude > 0)
{
//TODO: Make it so enemies don't just animate running forward
r_animator.SetBool("Running", true);
Vector3 move = m_agent.velocity.normalized;
transform.InverseTransformDirection(move);
r_animator.SetFloat("MoveX", 0f);//move.x);
r_animator.SetFloat("MoveY", 1f);// move.z);
}
else
{
r_animator.SetBool("Running", false);
}
}
public override void TakeDamage(float damage)
{
m_agent.speed = 0f;
if (m_currentHealth <= 0)
{
m_agent.isStopped = true;
}
base.TakeDamage(damage);
}
public override void StopTakingDamage()
{
base.StopTakingDamage();
m_agent.speed = m_speed;
}
}