Пример #1
0
    // 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);
        }
    }