Beispiel #1
0
    void CreateProjectile(Projectile projectile, float xSpeed, float ySpeed)
    {
        GameObject player = GameObject.FindGameObjectWithTag("Player");

        //
        Vector2 projectileVector = DIRECTION.normalized * 8f;
        //

        //projectile at the player
        Projectile newProjectile = Instantiate(projectile);

        newProjectile.transform.position = this.transform.position;
        newProjectile.setSpeed(xSpeed, ySpeed);

        ///*
        if (player.GetComponent <Player>().spreadShot)
        {
            for (int i = 1; i <= 3; i++)
            {
                int     angleSpread          = 20;
                Vector2 baseShot             = new Vector2(projectileVector.x, projectileVector.y);
                Vector2 positiveSpreadVector = Quaternion.Euler(0, 0, angleSpread * 2) * baseShot;
                Vector2 negativeSpreadVector = Quaternion.Euler(0, 0, angleSpread * -2) * baseShot;
                //Vector2 positiveSpreadVector = Quaternion.Euler(0, 0, angleSpread * i) * baseShot;
                //Vector2 negativeSpreadVector = Quaternion.Euler(0, 0, angleSpread * -i) * baseShot;

                PlayerProjectile positiveSpreadShot = Instantiate(playerProjectile);
                positiveSpreadShot.transform.position = this.transform.position;
                positiveSpreadShot.setSpeed(positiveSpreadVector.x, positiveSpreadVector.y);

                PlayerProjectile negativeSpreadShot = Instantiate(playerProjectile);
                negativeSpreadShot.transform.position = this.transform.position;
                negativeSpreadShot.setSpeed(negativeSpreadVector.x, negativeSpreadVector.y);
            }
        }
        //*/
    }