Beispiel #1
0
    public void Shoot()
    {
        shooting  = false;
        shootTime = Time.time;
        GameObject          player     = GameObject.FindGameObjectWithTag("Player");
        Vector2             direction  = (player.transform.position + new Vector3(0, 0.5f)) - (transform.position + (Vector3)projectileEmission);
        float               angle      = Vector2.SignedAngle(Vector2.right, direction);
        TrapGolemProjectile projectile =
            Instantiate(projectilePrefab, transform.position + (Vector3)projectileEmission,
                        Quaternion.Euler(0, 0, angle)).GetComponent <TrapGolemProjectile>();

        projectile.speed = projectileSpeed;
    }
Beispiel #2
0
    void Explode()
    {
        float angleDifference = 180f / (projectileCount - 1);

        for (int i = 0; i < projectileCount; i++)
        {
            float               angle      = i * angleDifference;
            Vector3             position   = transform.position + (Vector3)projectileEmissionCenter + new Vector3(Mathf.Cos(angle * Mathf.Deg2Rad), Mathf.Sin(angle * Mathf.Deg2Rad)) * projectileEmissionRadius;
            TrapGolemProjectile projectile = Instantiate(projectilePrefab, position, Quaternion.Euler(0, 0, angle)).GetComponent <TrapGolemProjectile>();
            projectile.speed = projectileSpeed;
        }

        Instantiate(deathParticle, transform.position, Quaternion.identity);
        Destroy(gameObject);
    }