/// <summary> /// Continuously called while the enemy is suspicous of the player /// </summary> public virtual void OnSuspicious() { detectedState = DetectedMode.Suspicious; detFlag = false; if (!susFlag) { OnFirstSuspicious(); } }
/// <summary> /// Called continuously while the enemy has detected the player /// </summary> public virtual void OnDetectPlayer() { detectedState = DetectedMode.Detected; susFlag = false; if (!detFlag) { OnFirstDetectPlayer(); } }
protected virtual void Update() { currentDetection = Mathf.Clamp(currentDetection, 0f, overallMaxDetection); if (currentDetection >= detectedLevel) { OnDetectPlayer(); } else if (currentDetection >= suspiciousLevel) { OnSuspicious(); } else { OnIdle(); detectedState = DetectedMode.Unaware; timer = 0; } }