Ejemplo n.º 1
0
    public void ShootProjectile()
    {
        ShootDirection shootDirectionEnum = currentShootDirection;
        Vector3        shootPosition      = shootDirectionEnum == ShootDirection.Right ? rightShootPosition.position : leftShootPosition.position;
        Vector3        shootDirection     = shootDirectionEnum == ShootDirection.Right ? Vector3.right : Vector3.left;

        shootDirection = Quaternion.Euler(0, 0, shootAngle * (shootDirectionEnum == ShootDirection.Right ? 1 : -1)) * shootDirection;

        /*print("SHOOT");
         * Debug.DrawRay(shootPosition, shootDirection * 5.0f, Color.magenta, 0.25f);*///
        ProjectileBase newProj = Instantiate(enemyProjectilePrefab, shootPosition, Quaternion.identity);

        newProj.ShootProjectile(shootDirection, gameObject);

        PlayShootFeedback();
    }
    public void ShootProjectile()
    {
        float   randomAngle    = Random.Range(-shootRandomAngle, shootRandomAngle);
        Vector3 shootDirection = currentShootDirection == ShootDirection.Right ? Vector3.right : Vector3.left;

        shootDirection = Quaternion.Euler(0, 0, randomAngle) * shootDirection;

        //Vector3 shootPosition = (currentShootDirection == ShootDirection.Right ? rightShootPosition : leftShootPosition).position;
        Vector3 shootPosition = charaFlower.GetCurrentShootPosition;

        //Quaternion shootRotation = (currentShootDirection == ShootDirection.Right ? rightShootPosition : leftShootPosition).rotation;
        Quaternion     shootRotation = Quaternion.Euler(0, 0, currentShootDirection == ShootDirection.Right ? 0 : 180);
        ProjectileBase newProjectile = Instantiate(projectilePrefab, shootPosition, shootRotation);

        newProjectile.ShootProjectile(shootDirection, gameObject);

        currentHorizontalSpeed += shootRecoil * (currentShootDirection == ShootDirection.Right ? -1 : 1);

        PlayShootFeedback();

        charaFlower.SetShooting();
        OnPlayerShotProjectile?.Invoke();
    }