private void Update() { distanceToPlayer = Vector3.Distance(player.transform.position, transform.position); WeaponSystem weaponSystem = GetComponent <WeaponSystem>(); bool inWeaponCircle = distanceToPlayer <= currentWeaponRange; bool inChaseRing = distanceToPlayer > currentWeaponRange && distanceToPlayer <= chaseRadius; bool outsideChaseRing = distanceToPlayer > chaseRadius; currentWeaponRange = weaponSystem.GetCurrentWeapon().GetMaxAttackRange(); if (outsideChaseRing) { StopAllCoroutines(); weaponSystem.StopAttacking(); StartCoroutine(Patrol()); } if (inChaseRing) { StopAllCoroutines(); weaponSystem.StopAttacking(); StartCoroutine(ChasePlayer()); } if (inWeaponCircle) { StopAllCoroutines(); weaponSystem.AttackTarget(player.gameObject); state = State.attacking; } }
void Update() { distanceToPlayer = Vector3.Distance(player.transform.position, transform.position); WeaponSystem weaponSystem = GetComponent <WeaponSystem>(); // No performance issue currentWeaponRange = weaponSystem.GetCurrentWeapon().GetMaxAttackRange(); bool inWeaponRadius = distanceToPlayer <= currentWeaponRange; bool inChaseRadius = distanceToPlayer > currentWeaponRange && distanceToPlayer <= chaseRadius; bool outsideChaseRadius = distanceToPlayer > chaseRadius; if (inWeaponRadius) { StopAllCoroutines(); state = State.attacking; transform.LookAt(player.gameObject.transform); weaponSystem.AttackTarget(player.gameObject); character.GetNavMeshAgent().Move(Vector3.zero); character.GetNavMeshAgent().velocity = Vector3.zero; } if (outsideChaseRadius) { StopAllCoroutines(); //weaponSystem.StopAttacking(); StartCoroutine(Patrol()); } if (inChaseRadius) { StopAllCoroutines(); weaponSystem.StopAttacking(); StartCoroutine(ChasePlayer()); } }
private void Update() { if (!player) { return; } distanceToPlayer = Vector3.Distance(player.transform.position, transform.position); currentWeaponRange = weaponSystem.GetCurrentWeapon().GetMaxAttackRange(); if (distanceToPlayer > chaseRadious && state != State.patrolling) { //stop what we'are doing StopAllCoroutines(); //Stop weaponSystem Coroutine. // weaponSystem.StopAllCoroutines(); //start patrolling StartCoroutine(Patrol()); } if (distanceToPlayer <= chaseRadious && state != State.chasing) { //stop what we'are doing StopAllCoroutines(); //weaponSystem.StopAllCoroutines(); //start chasing StartCoroutine(ChasePlayer()); } if (distanceToPlayer <= currentWeaponRange && state != State.attacking) { //stop what we're doing StopAllCoroutines(); //start attacking StartCoroutine(AttackPlayer()); } }
void Update() { WeaponSystem weaponSystem = GetComponent <WeaponSystem>(); currentWeaponRange = weaponSystem.GetCurrentWeapon().GetMaxAttackRange(); distanceToPlayer = Vector3.Distance(player.transform.position, transform.position); if (distanceToPlayer > chaseRadius && state != State.patrolling) { StopAllCoroutines(); StartCoroutine(Patrol()); } if (distanceToPlayer <= chaseRadius && state != State.chasing) { StopAllCoroutines(); StartCoroutine(ChasePlayer()); } if (distanceToPlayer <= currentWeaponRange && state != State.attacking) { StopAllCoroutines(); state = State.attacking; weaponSystem.AttackTarget(player); } }
bool IsTargetInRange(GameObject target) { updatedTarget = target; float distanceToTarget = (target.transform.position - transform.position).magnitude; return(distanceToTarget <= weaponSystem.GetCurrentWeapon().GetMaxAttackRange()); }
void Update() { if (Input.GetKeyDown(KeyCode.Y)) { Time.timeScale = 0; } distanceToPlayer = Vector3.Distance(player.transform.position, transform.position); WeaponSystem weaponSystem = GetComponent <WeaponSystem>(); currrentWeaponRange = weaponSystem.GetCurrentWeapon().GetMaxAttackRange(); if (distanceToPlayer > chaseRadius && state != State.patrolling) { StopAllCoroutines(); StartCoroutine(Patrol()); } if (distanceToPlayer <= chaseRadius && state != State.chasing) { StopAllCoroutines(); StartCoroutine(ChasePlayer()); } if (distanceToPlayer <= currrentWeaponRange && state != State.attacking) { StopAllCoroutines(); state = State.attacking; } }
bool IsTargetInRange(GameObject target) { float distanceTotarget = (target.transform.position - transform.position).magnitude; bool isInRange = distanceTotarget <= weaponSystem.GetCurrentWeapon().GetMaxAttackRange(); return(isInRange); }
void Update() { distanceToPlayer = Vector3.Distance(player.transform.position, transform.position); WeaponSystem weaponSystem = GetComponent <WeaponSystem>(); currentWeaponRange = weaponSystem.GetCurrentWeapon().GetMaxAttackRange(); bool inWeaponCircle = distanceToPlayer <= currentWeaponRange; bool inChaseCircle = distanceToPlayer > currentWeaponRange && distanceToPlayer <= chaseRadious; bool outsideChaseCircle = distanceToPlayer > chaseRadious; if (outsideChaseCircle) { StopAllCoroutines(); weaponSystem.StopAttacking(); StartCoroutine(Patrol()); } if (inChaseCircle) { StopAllCoroutines(); weaponSystem.StopAttacking(); StartCoroutine(ChasePlayer()); } if (inWeaponCircle) { StopAllCoroutines(); state = State.attacking; //state = State.attacking; si activo deja de funcionar el health del player weaponSystem.AttackTarget(player.gameObject); } //////////////////////////////////////////////////// // if (distanceToPlayer > chaseRadious && state != State.patrolling) // { // StopAllCoroutines(); // weaponSystem.StopAttacking(); // StartCoroutine( Patrol() ); // } // if (distanceToPlayer <= chaseRadious && state != State.chasing) // { // StopAllCoroutines(); // weaponSystem.StopAttacking(); // StartCoroutine(ChasePlayer()); // } // if (distanceToPlayer <= currentWeaponRange && state != State.attacking) // { // StopAllCoroutines(); // //state = State.attacking; si activo deja de funcionar el health del player // weaponSystem.AttackTarget(player.gameObject); // } /////////////////////////////////////////////////////// }
bool IsTargetInRange(EnemyAI enemy) { if (enemy) { float distanceToTarget = (enemy.transform.position - transform.position).magnitude; return(distanceToTarget <= weaponSystem.GetCurrentWeapon().GetMaxAttackRange()); } else { return(false); } }
private bool IsEnemyInRange(GameObject enemy) { float distanceToEnemy = (enemy.transform.position - transform.position).magnitude; if (distanceToEnemy > weaponSystem.GetCurrentWeapon().GetMaxAttackRange()) { return(false); } else { return(true); } }
private void Update() { WeaponSystem weaponSystem = GetComponent <WeaponSystem>(); attackRange = weaponSystem.GetCurrentWeapon().GetMaxAttackRange(); distanceToTarget = Vector3.Distance(playerControl.transform.position, transform.position); bool inWeaponRange = distanceToTarget <= attackRange; bool inChaseRange = distanceToTarget > attackRange && distanceToTarget <= chaseRadius; bool outsideChaseRange = distanceToTarget > chaseRadius; if (outsideChaseRange && state != State.patrolling) { StopAllCoroutines(); weaponSystem.StopAttacking(); StartCoroutine(Patrol()); } if (inChaseRange && state != State.chasing) { StopAllCoroutines(); weaponSystem.StopAttacking(); StartCoroutine(ChasePlayer()); } if (inWeaponRange && state != State.attacking) { StopAllCoroutines(); state = State.attacking; weaponSystem.AttackTarget(playerControl.gameObject); } if (isFriendly && distanceToTarget <= chaseRadius && state != State.following) { // follow state // following is moving to a spot right behind the player } if (health.HealthAsPercentage() <= .05 && state != State.fleeing) { // flee state } }
void Update() { WeaponSystem weaponSystem = GetComponent <WeaponSystem>(); currentWeaponRange = weaponSystem.GetCurrentWeapon().GetMaxAttackRange(); distanceToPlayer = Vector3.Distance(player.transform.position, transform.position); if (isAlive) { bool inWeaponRange = distanceToPlayer <= currentWeaponRange; bool inChaseRange = distanceToPlayer > currentWeaponRange && distanceToPlayer <= chaseRadius; bool outsideChaseRange = distanceToPlayer > chaseRadius; if (inChaseRange) { StopAllCoroutines(); weaponSystem.StopAttacking(); StartCoroutine(ChasePlayer()); character.ReturnAnimationFowardCap(); } else if (inWeaponRange) { StopAllCoroutines(); state = State.attacking; weaponSystem.AttackTarget(player.gameObject); } else if (outsideChaseRange && state != State.patrolling) { StopAllCoroutines(); weaponSystem.StopAttacking(); StartCoroutine(Patrol()); } } else { StopAllCoroutines(); } }
void Update() { WeaponSystem weaponSystem = GetComponent <WeaponSystem>(); currentWeaponRange = weaponSystem.GetCurrentWeapon().GetMaxAttackRange(); distanceToPlayer = Vector3.Distance(player.transform.position, transform.position); //bool playerIsOutOfRangeAndEnemyIsNotPatrolling = distanceToPlayer > chaseRadius && state != State.patrolling; bool inWeaponCircle = distanceToPlayer <= currentWeaponRange; bool inChaseCircle = distanceToPlayer > currentWeaponRange && distanceToPlayer <= chaseRadius; bool outsideChaseCircle = distanceToPlayer > chaseRadius; if (outsideChaseCircle) { StopAllCoroutines(); weaponSystem.StopAttacking(); StartCoroutine(Patrol()); } //bool playerIsInRangeAndEnemyIsNotChasing = distanceToPlayer <= chaseRadius && state != State.chasing; if (inChaseCircle) { StopAllCoroutines(); weaponSystem.StopAttacking(); StartCoroutine(ChasePlayer()); } //bool playerIsInWeaponRangeAndEnenyIsNotAttacking = distanceToPlayer <= currentWeaponRange && state != State.attacking; if (inWeaponCircle) { StopAllCoroutines(); state = State.attacking; weaponSystem.AttackTarget(player.gameObject); } }
// Update is called once per frame void Update() { WeaponSystem weaponSystem = GetComponent <WeaponSystem>(); currentWeaponRange = weaponSystem.GetCurrentWeapon().AttackRadius(); distanceToPlayer = Vector3.Distance(player.transform.position, transform.position); if (distanceToPlayer > aggroRadius && state != State.patrolling) { StopAllCoroutines(); StartCoroutine(Patrol()); } if (distanceToPlayer <= aggroRadius && state != State.chasing) { StopAllCoroutines(); StartCoroutine(ChasePlayer()); } if (distanceToPlayer <= currentWeaponRange && state != State.attacking) { state = State.attacking; StopAllCoroutines(); StartCoroutine(MoveAndAttack(player.gameObject)); } }
void FindTargetsInRange() { Assert.IsFalse(enemyLayerMask == 0, "Please set enemyLayerMask to the Enemy layer"); targets = Physics.OverlapSphere(transform.position, weaponSystem.GetCurrentWeapon().GetMaxAttackRange(), enemyLayerMask); }
private bool IsTargetInRange(GameObject target) { float distanceToTarget = Vector3.Distance(target.transform.position, transform.position); return(distanceToTarget <= weaponSystem.GetCurrentWeapon().AttackRadius()); }