// Update is called once per frame void Update() { Vector3 healthSliderPosition = Camera.main.WorldToScreenPoint(transform.position); HealthSlider.transform.position = new Vector3(healthSliderPosition.x, healthSliderPosition.y + 50, healthSliderPosition.z); ////Ready if (!firing) { if (transform.position.x < EnemySpawns.SkyUpperLeft.x) { arrowNext = Time.time + Random.Range(.5f, 1.5f); firing = true; } } ////Aim //float targetAngle = 90; ////Variation float targetAngle = AngleBetweenVector2(DarkBowArm.position, player.transform.position) - 20; float turnSpeed = 1f; Quaternion nextAngle = Quaternion.Slerp(DarkBowArm.rotation, Quaternion.Euler(0, 0, targetAngle), turnSpeed * Time.deltaTime); DarkBowArm.rotation = nextAngle; ////Fire 3 burst if (firing) { if (Time.time > arrowPauseNext) { if (Time.time > arrowNext) { //angle = angle + 45f; arrowController.LooseDarkArrow(DarkArrowPoint.position, nextAngle.eulerAngles.z, AttackPower, false); //bowSound.Play(); arrowNext = Time.time + AttackSpeed; arrowBurst++; if (arrowBurst == 3) { arrowPauseNext = Time.time + AttackPause; arrowBurst = 0; } } } } ////Fire // if (firing && Time.time > arrowNext) // { // angle = angle + 45f; // arrowController.LooseDarkArrow(DarkArrowPoint.position, nextAngle.eulerAngles.z, AttackPower, false); // //bowSound.Play(); // arrowNext = Time.time + AttackSpeed; // } ////Move if (transform.position == nextPosition) { nextPosition = GetNextPosition(); } else { transform.position = Vector3.MoveTowards(transform.position, nextPosition, .025f); } }