Exemple #1
0
 private void Shoot()
 {
     if (isTargetInRange && isAbleToShoot)
     {
         ChaingunBullet newBullet = ((GameObject)Instantiate(owner.bulletPrefab)).GetComponent <ChaingunBullet>();
         newBullet.gameObject.layer    = 11;
         newBullet.gameObject.tag      = gameObject.tag + "Bullet";
         newBullet.transform.right     = transform.right;
         newBullet.transform.position  = owner.aim.position;
         newBullet.transform.position += newBullet.transform.right;
         newBullet.damage              = owner.damage;
         isAbleToShoot = false;
         StartCoroutine(ShootCooldown());
     }
 }
Exemple #2
0
    private void GenerateScatterShot(int shootAmount)
    {
        float offset = 1f / shootAmount;
        float angle  = offset * (shootAmount - 1) / 2;

        for (int i = 0; i < shootAmount; i++)
        {
            ChaingunBullet newBullet = ((GameObject)Instantiate(owner.bulletPrefab)).GetComponent <ChaingunBullet> ();
            newBullet.gameObject.layer    = 11;
            newBullet.gameObject.tag      = gameObject.tag + "Bullet";
            newBullet.transform.right     = new Vector3(transform.right.x * Mathf.Cos(angle) - transform.right.y * Mathf.Sin(angle), transform.right.x * Mathf.Sin(angle) + transform.right.y * Mathf.Cos(angle), transform.right.z);
            newBullet.transform.position  = owner.aim.position;
            newBullet.transform.position += newBullet.transform.right;
            newBullet.damage              = owner.damage;
            angle -= offset;
        }
    }