Vector3 GetPointToRetreatTo() { NavMeshHit hit; Vector3 pointAwayFromPlayer; if (NavMesh.SamplePosition(enemy.transform.position - enemy.GetDirectionTo(enemy.chaseTarget) * enemy.retreatLength, out hit, enemy.navMeshAgent.height * 2, NavMesh.AllAreas)) { return(pointAwayFromPlayer = hit.position); } else { return(new Vector3(0, 0, 0)); } }
void Fire() { if (!enemy.IsPlayerInsideComfortZone()) { Vector3 directionToPlayerWithOffset = enemy.GetDirectionTo(enemy.chaseTarget); directionToPlayerWithOffset = new Vector3(directionToPlayerWithOffset.x, directionToPlayerWithOffset.y + 0.10f, directionToPlayerWithOffset.z); SpawnProjectile(enemy.transform.position, directionToPlayerWithOffset, enemy.projectileSpeed); Debug.Log("lets say i jsut fired"); enemy.isReloaded = false; ToAttackWindUp(); } else { ToAttackWindUp(); enemy.currentState = enemy.retreatState; } }