public virtual void FireSpreadBullet() { float angleSizePerShot = rangedData.spreadMaxRange / rangedData.spreadAmount; for (int i = 0; i < rangedData.spreadAmount; i++) { GameObject bulletToFire = PoolingManager.singleton.bulletPooler.GetPoolableObject(); Weapon_FiredProjectile bulletComponent = bulletToFire.GetComponent <Weapon_FiredProjectile>(); Vector3 rotationVal; if (isPlayerWeapon) { bulletToFire.transform.position = playerWeaponController.bulletShootPoint.position; rotationVal = playerWeaponController.bulletShootPoint.rotation.eulerAngles; bulletComponent.Init(rangedData.bulletMovementSpeed, rangedData.sharedWeaponData.layersPlayerCanHitWithWeapon.value, rangedData.attackDamage, weaponItemData); //Create GunShot Notification CreateGunShotNotification(); } else { bulletToFire.transform.position = aiInventoryController.bulletShootPoint.position; rotationVal = aiInventoryController.bulletShootPoint.rotation.eulerAngles; bulletComponent.Init(rangedData.bulletMovementSpeed - rangedData.aiData.bulletSpeedModifier, rangedData.sharedWeaponData.layersEnemiesCanHitWithWeapon.value, rangedData.attackDamage, weaponItemData); } Weapon_BulletManager.singleton.bulletsToTick.Add(bulletComponent); float curAngle = (rotationVal.y - rangedData.spreadMaxRange / 2 + angleSizePerShot * i); bulletToFire.transform.rotation = Quaternion.Euler(bulletToFire.transform.rotation.x, curAngle, bulletToFire.transform.rotation.z); } }
public virtual void FireSingleBullet() { GameObject bulletToFire = PoolingManager.singleton.bulletPooler.GetPoolableObject(); Weapon_FiredProjectile bulletComponent = bulletToFire.GetComponent <Weapon_FiredProjectile>(); if (isPlayerWeapon) { bulletToFire.transform.position = playerWeaponController.bulletShootPoint.position; bulletToFire.transform.rotation = playerWeaponController.bulletShootPoint.rotation; bulletComponent.Init(rangedData.bulletMovementSpeed, rangedData.sharedWeaponData.layersPlayerCanHitWithWeapon.value, rangedData.attackDamage, weaponItemData); //Create GunShot Notification CreateGunShotNotification(); } else { bulletToFire.transform.position = aiInventoryController.bulletShootPoint.position; bulletToFire.transform.rotation = aiInventoryController.bulletShootPoint.rotation; bulletComponent.Init(rangedData.bulletMovementSpeed - rangedData.aiData.bulletSpeedModifier, rangedData.sharedWeaponData.layersEnemiesCanHitWithWeapon.value, rangedData.attackDamage, weaponItemData); } Weapon_BulletManager.singleton.bulletsToTick.Add(bulletComponent); }