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()); } }
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; } }