How to rotate Bullets alongside Gravity 2D (No RigidBody)
Hello, I'm creating a 2D platformer shooter and I've created a pretty complex weapon system. I've been adding more and more behaviors to it and I've found a something that has stopped me from moving forward.
Currently, the bullets have no rotation what so ever. The move towards the direction they are shot at the following way.
Vector3 velocity;
float startSpeed = 10;
float targetSpeed = 20;
float gravity = -30;
void Start () {
velocity = startSpeed * startDirection; // Start direction is given by another code and calculated by mouse position relative to the character
}
void Update () {
// Target Speed
Vector3 targetSpeed = transform.InverseTransformVector (velocity.normalized * targetSpeed);
velocity = Vector3.SmoothDamp (velocity, targetSpeed, ref velocitySmoothing, stats.velocitySmoothingTime);
// Add Gravity
Vector3 gravity = transform.InverseTransformVector (Vector3.up * stats.gravity);
velocity += gravity * Time.deltaTime;
// Move
transform.Translate (velocity * Time.deltaTime);
}
This code moves the bullet, ramping up the speed over time, adds gravity and finally actually moves the Buller. The issue comes when I try rotating the bullet on it's moving direction. I tried so adding this code after adding the gravity.
transform.up = Vector3.Slerp(transform.up, velocity.normalized, Time.deltaTime);
I've tried several other methods and haven't got it working. The reason I need it to rotate is for the colliders and sprites attached to rotate alongside it.
Can anyone see what I'm doing wrong?
Your answer
Follow this Question
Related Questions
Why is my momentum not carrying over to the X axis? 0 Answers
Physics 2D disable collision bouncyness 0 Answers
What does the other in OnTriggerEnter/Stay/Exit mean? 0 Answers
Why velocity is added on the global coordinates and not the local ones? 1 Answer
Character hangs on the end of colliders? 0 Answers