private void Update() { distanceToPlayer = Vector3.Distance(player.transform.position, transform.position); currentWeaponRange = weaponSystem.GetWeaponConfig().GetMaxAttackRange(); bool inWeaponCircle = distanceToPlayer <= currentWeaponRange; bool inChaseRing = distanceToPlayer > currentWeaponRange && distanceToPlayer <= chaseRadius; bool outsideChaseRing = distanceToPlayer > chaseRadius; if (outsideChaseRing) { StopAttacking(); character.setSelectedAnimatorForward(); StartCoroutine(Patrol()); } if (inChaseRing) { character.setMaximumAnimatorForward(); StopAttacking(); StartCoroutine(ChasePlayer()); } if (inWeaponCircle) { StopAllCoroutines(); weaponSystem.AttackTarget(player.gameObject); } }
public void Update() { distanceToPlayer = Vector3.Distance(player.transform.position, transform.position); weaponSystem = GetComponent <WeaponSystem>(); currentWeaponRange = weaponSystem.GetWeaponConfig().GetMaxAttackRange(); bool inWeaponCricle = distanceToPlayer <= currentWeaponRange; bool inChaseCircle = distanceToPlayer > currentWeaponRange && distanceToPlayer <= chaseRadius; bool outsideChaseCircle = distanceToPlayer > chaseRadius; if (outsideChaseCircle && state != State.patrolling) { StopAllCoroutines(); weaponSystem.StopAttacking(); StartCoroutine(Patrol()); } if (inChaseCircle && state != State.chasing) { StopAllCoroutines(); weaponSystem.StopAttacking(); StartCoroutine(ChasePlayer()); } if (inWeaponCricle && state != State.attacking) { StopAllCoroutines(); character.SetDestination(gameObject.transform.position); state = State.attacking; weaponSystem.AttackTarget(player.gameObject); } }
private void Start() { player = GameObject.FindWithTag(Constants.PLAYER_TAG).GetComponent <PlayerControl>(); character = GetComponent <Character>(); weaponSystem = GetComponent <WeaponSystem>(); currentWeaponRange = weaponSystem.GetWeaponConfig().GetMaxAttackRange(); }
private bool IsTargetInRange(GameObject target) { float distanceToTarget = (target.transform.position - transform.position).magnitude; return(distanceToTarget <= weaponSystem.GetWeaponConfig().GetMaxAttackRange()); }