How do I pass in a Vector3 where a Quaternion should go?

Hi, so I’m following this tutorial:

But I changed it so that the gun instantiates lasers instead of firing raycasts. That worked until I got to the bloom because Instantiating requires a Quaternion whereas raycasting requires a Vector3. I want to know how to put the Vector3 variable t_bloom into the rotation slot of Instantiate.

Transform t_spawn = transform.Find("Cameras/Camera");

//Bloom
Vector3 t_bloom = t_spawn.position + t_spawn.forward * 1000f;
t_bloom += Random.Range(-loadout[currentIndex].bloom, loadout[currentIndex].bloom) * t_spawn.up;
t_bloom += Random.Range(-loadout[currentIndex].bloom, loadout[currentIndex].bloom) * t_spawn.right;
t_bloom -= t_spawn.position;
t_bloom.Normalize();
Debug.Log(t_bloom);

//Spawn Bullet
GameObject t_newBullet = Instantiate(bulletPrefab, t_spawn.position, Quaternion.Euler(t_bloom));

This is the section dealing with firing. I looked at other questions like this and found I could use Quaternion.Euler(Vector3) to convert Vector3s to Quaternions, but when I tried that, all the bullets always fired in the exact same direction no matter what direction I am facing.

Quaternion.LookRotation(dir,up) turns a direction Vector3s into a Quaternion.

Quaternion.Euler( angles ) converts 3 angle values in degrees into a Quaternion.

Try this:

// Calculate the direction vector for bullet firing
Vector3 t_bloom = t_spawn.position + t_spawn.forward * 1000f;
t_bloom += Random.Range(-loadout[currentIndex].bloom, loadout[currentIndex].bloom) * t_spawn.up;
t_bloom += Random.Range(-loadout[currentIndex].bloom, loadout[currentIndex].bloom) * t_spawn.right;
Vector3 bulletDirection = t_bloom.normalized;

// Create a rotation quaternion based on the direction vector
Quaternion bulletRotation = Quaternion.LookRotation(bulletDirection);

// Spawn Bullet
GameObject t_newBullet = Instantiate(bulletPrefab, t_spawn.position, bulletRotation);

Try this:

// Calculate the direction vector for bullet firing
Vector3 t_bloom = t_spawn.position + t_spawn.forward * 1000f;
t_bloom += Random.Range(-loadout[currentIndex].bloom, loadout[currentIndex].bloom) * t_spawn.up;
t_bloom += Random.Range(-loadout[currentIndex].bloom, loadout[currentIndex].bloom) * t_spawn.right;
Vector3 bulletDirection = t_bloom.normalized;

// Create a rotation quaternion based on the direction vector
Quaternion bulletRotation = Quaternion.LookRotation(bulletDirection);

// Spawn Bullet
GameObject t_newBullet = Instantiate(bulletPrefab, t_spawn.position, bulletRotation);