Help with correct object rotation and movement

Hello all,
I hope I’m in the correct forum for this beginner question. I’m new to developing with Unity. I’m currently following the Junior Programmer path.

This is what I’m struggling with:
I have a prefab bullet set up to face towards the Z axis by rotating it 90° on the X axis.
Now, when I instantiate it and apply AddForce to it on the forward vector, it travels on the Y axis instead of going forward. To fix this, I have to move it on the up vector instead, which seems counter-intuitive to me. Is there a way to both keep the prefab’s rotation and use the forward vector, or is this just how it is in Unity?

I should add that I instantiate the bullet relative to the position and rotation of another gameObject, but directly dragging the bullet prefab into the running game scene gives me the same result.

Here’s the relevant code:

// inside parent object where I spawn the bullets
Quaternion quatEulerX = Quaternion.Euler(90, 0, 0);
Instantiate(bulletPrefab, transform.position + transform.forward * 1.1f, transform.rotation * quatEulerX);

[...]

// Inside bullet script where I add force to make the bullet move
void Start()
{
    GetComponent<Rigidbody>().AddForce(transform.up * bulletSpeed, ForceMode.Impulse);
}

To fix the issue with the bullet’s direction, try modifying the force to use transform.forward instead of transform.up in the Start() method. The problem arises because you’re currently adding force along the Y-axis (up) rather than forward. Here’s the adjusted code:

void Start()
{
    GetComponent<Rigidbody>().AddForce(transform.forward * bulletSpeed, ForceMode.Impulse);
}

This should ensure that the bullet moves along the forward direction based on its rotation, as intended in Unity.