void FixedUpdate() { if (m_BaseBehavior == true) { //if (target != null && target.tag == "Player") if (myRadar.GetTarget()) { m_ToTarget = myRadar.GetTarget().transform.position - m_transform.position; // The step size is equal to speed times frame time. var step = m_turnRate * Time.deltaTime; var newDir = Vector3.RotateTowards(m_transform.forward, m_ToTarget, step, 0.0f); //Debug.DrawRay(transform.position, newDir, Color.red); // Move our position a step closer to the target. m_transform.rotation = Quaternion.LookRotation(newDir); m_rigidbody.velocity = m_transform.forward * m_speed; } } else { //If there is no target it does a base patrol; m_transform.Rotate(0f, m_turnRate, 0f); m_rigidbody.velocity = m_transform.forward * m_speed; } }
void Update() { if (m_heatlh <= 0) { //Event_Manager.TriggerEvent("EnemyDestroyed"); Event_System.EnemyDestroyed(this.gameObject); Object death = Instantiate(m_Death, m_rigidbody.position, m_rigidbody.rotation); Destroy(death, 1.0f); Destroy(gameObject); } if (myRadar.GetTarget()) { //Checks if the Player is infront of the enemy and if they're in a sutible range to attack var m_HitInfo = new RaycastHit(); if (Physics.Raycast(m_transform.position, m_transform.forward, out m_HitInfo, m_fireRange) == true) { if (m_HitInfo.collider.tag == "Player") { for (int i = 0; i < m_lasers.Length; ++i) { m_lasers [i].Fire(); } } } } }