# Help Adding Local Force and Rotating in a For Loop

I’m making an action platformer and the game play centers around the player shooting a shotgun like this

So I already have the gun shooting singular bullets and dealing damage to enemies what I need help with is two things. The first one is simple here’s my code, I need help adding velocity along a local axis. the next thing is a little bit more difficult, I need to rotate each bullet between the negative and positive value of bulletSpreadAngle. so I can then add the local force along the x axis.

``````float numOfBullets = 5f;
float bulletSpeed = 10f;
float bulletSpreadAngle = 45f; // How far the farthest bullet will be tilted
GameObject bulletPrefab; // Defined in the editor, this is the prefab that all bullets are spawned from

void ShootWeapon()
{
// bullet's rotation = spread distance / number of bullets
// Every iteration in the loop add onto the rotation and rotate the bullet that much
for (int i = 0; i < numOfBullets; i++)
{
{
GameObject bullet = Instantiate(bulletPrefab, gunEnd.position, Quaternion.identity);
Rigidbody2D projectileRigidbody = bullet.GetComponent<Rigidbody2D>();

if (transform.localScale.x > 0)
{
//bullet.transform.rotation = new Quaternion(Quaternion.identity.x, Quaternion.identity.y, Quaternion.identity.z * j, Quaternion.identity.w);
projectileRigidbody.velocity = new Vector3( bulletSpeed, projectileRigidbody.velocity.y);
}
else if (transform.localScale.x < 0)
{
projectileRigidbody.velocity = new Vector2(-bulletSpeed, projectileRigidbody.velocity.y);
}
}
}
}
``````

You can try using Vector3(new Vector3(0,0,0) and Mathf.SmoothDamp and Mathf.Lerp. Check it on Unity API!

Sine and cosine will do the job:

``````projectileRigidbody.velocity = new Vector2(
Mathf.Sin(j),
Mathf.Cos(j)
) * bulletSpeed;
``````