Hark-the-Moon-Men-Cometh / Assets / Scripts / Creatures / MovingEnemy.cs
MovingEnemy.cs
Raw
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;
    }
}