Пример #1
0
	void FixedUpdate(){
		crrntSpeed = rigid.velocity.y;
		range = Vector2.Distance(transform.position, target.position);

		//(IF THE PLAYER IS TOO CLOSE: STOP MOVING)
		if (range < distance.x) {
			_enemyMove.enemySpeed = _enemyMove.speed.x;
		} else {
			_enemyMove.enemySpeed = _enemyMove.speed.y;
		}
		//(IF HEALTH LOW: EVADE)
		if (_enemyHealth.enemyHealth < enemyLowHealth) {
			//START EVADING!
			if (!IsEvading) {
				IsEvading = true;
				_enemyEvade.StartEvading (rigid, crrntSpeed, IsEvading);
			}
		} else {
			//NOT EVADING
			IsEvading = false;
			_enemyEvade.StopEvading (IsEvading);
		}
		//(CLOSE ENOUGH:SHOOT)
		if (range < distance.y) {
			if (!IsShooting) {
				IsShooting = true;
				//START SHOOTING
				_enemyShoot.StartFiring ();
			}
		} else {
			//NOT SHOOTING
			IsShooting = false;
			_enemyShoot.StopFiring ();
		}
		//(WITHIN SIGHT: CHASE)
		if (range <= distance.z) {
			if (!IsChasing) {
				//START CHASING
				IsChasing = true;
				_enemyChasing.StartChasing(IsChasing, target);
				_enemyMove.enemySpeed = _enemyMove.speed.z;
			}
		} else {
			//NOT CHASING
			IsChasing = false;
			_enemyMove.enemySpeed = _enemyMove.speed.y;
			_enemyChasing.StopChasing(IsChasing, target);
		}
		//(TOO FAR: PATROL) OR (IF THE PLAYER DIED)
		if (range > distance.z || !target.gameObject.activeInHierarchy) {
			if (!IsPatrolling) {
				//START PATROLLING
				IsPatrolling = true;
				_enemyPatrol.StartPatrolling(IsPatrolling);
			}
		} else {
		//NOT PATROLLING
			IsPatrolling = false;
			_enemyPatrol.StopPatrolling (IsPatrolling);
		}
	}