I just need some way to have an object tilt its forward Z axis downward toward the floor over time, but stop before it is facing the floor directly. It is such a simple thing but I cannot find a full proof way to do it…
I have an object that is translating transform.forward * speed, and I want to have it tilt its forward downard towards the ground overtime to create a parabolic arc… Problem is every way I have attempted to do this gives me funky results ESPECIALLY when crossing 0,0,0 in the game world. Rotating it is just one part though, once it is rotating I also need it to STOP rotating before it goes beyond looking directly down.
Seems so easy, but it is so hard for some reason.
Picture of what I am trying to do HERE,

Picture of what is occuring with my current code setup.
this picture is top down showing me shooting into the 0,0,0.
As you can see instead of dropping directly down the bullets curve outwards in a funny way to
try to reach the location under themselves.

This is the code I am currently using to tilt the object towards the floor, but it has the bad side effect of acting like a magnet of the opposite polarity when shooting the projectiles towards 0,0,0 world space. Can’t figure this out…
transform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.LookRotation(((transform.position + Vector3.down) - transform.position), transform.position), Time.deltaTime * drop);
Not sure if I understand the problem, but you can shoot the projectiles in the opposite direction then as a workaround. Otherwise please provide more details on that iss
I have a projectile that is just a location in space. It is translating towards its positive Z. I want to have its positive Z drop down toward the ground at a rate based on a variable I have. Problem is everything I have tried gives me strange rotation that does not make sense. This object has no rigid body, it is simply a empty game object with a graphics render on it.
This problem is killing me. I simply want to rotate my object till it faces nearly global down, and then have it stop rotating until it is no longer facing global down, then begin rotating again.
You can rotate an object using this method:
If the object is pointing toward +Z, you have to rotate it around the X axis to point downwards, i.e.:
transform.Rotate(10 * Time.deltaTime, 0, 0);
X axis: pitch
Y axis: yaw
Z axis: roll
Still does not solve the problem of keeping the rotation from passing Global Down. Thank you for your help though.