// Update is called once per frame void Update() { if (searchEnabled) { searchTimeElapsed += Time.deltaTime; if (searchTimeElapsed >= searchTimeLimit && searchEnabled) { searchEnabled = false; if (navMeshAgent.isActiveAndEnabled) { navMeshAgent.SetDestination(transform.position); } } if (searchEnabled) { if (transform.position.x == lastKnownPosition.x && transform.position.z == lastKnownPosition.z && lookRotation != null && transform.rotation != lastKnownRotation) { if (navMeshAgent.isActiveAndEnabled) { navMeshAgent.enabled = false; } transform.rotation = lookRotation.GetRotationTowardsTarget(lastKnownPosition + targetTransform.forward); } else if (navMeshAgent.destination != lastKnownPosition) { navMeshAgent.SetDestination(lastKnownPosition); } } } }
// Update is called once per frame void Update() { #region Rotate towards Target if (target != null) { if (visionRange.CanViewTarget(target)) { targetSighted = true; searchAttempted = false; //Stop what your doing and shoot someone if (basicPatrol != null && basicPatrol.patrolModeEnabled) { basicPatrol.patrolModeEnabled = false; } if (basicSearch != null && basicSearch.searchEnabled) { basicSearch.searchEnabled = false; } if (navMeshAgent.isActiveAndEnabled) { navMeshAgent.enabled = false; if (alertSource != null) { alertSource.Play(); } } lookRotation.transform.rotation = lookRotation.GetRotationTowardsTarget(target.transform.position); #region Fire Primary Weapon if (fireProjectileCooldown.IsOffCooldown() && facing.IsFacingDirectlyAtTarget(target)) { fireProjectile.Fire(projectileOriginTransform, target.transform.position); fireProjectileCooldown.OnActionActivated(); } #endregion } //Start searching else if (!visionRange.CanViewTarget(target) && targetSighted && !searchAttempted && !basicSearch.searchEnabled) { navMeshAgent.enabled = true; basicSearch.StartSearch(target.transform); searchAttempted = true; targetSighted = false; } //Go back to patroling else if (!visionRange.CanViewTarget(target) && !basicSearch.searchEnabled && basicPatrol != null && !basicPatrol.patrolModeEnabled) { if (basicPatrol != null) { basicPatrol.patrolModeEnabled = true; navMeshAgent.enabled = true; basicPatrol.NavigateToNextWayPoint(); } } } #endregion }