- Home /
Change Speed to Rotate Character 90 degrees (Isometric view)
I realize there are a lot of questions about this but I have searched through and used every method previously suggest and it has not worked.
Each method, except for the one I currently use, only rotates the character by 1 degree when using "GetKeyDown". If I use "GetKey" and hold down the key it rotates the character as long as the key is held but I can change the speed of that.
However neither one accomplishes what I am trying to do:
Single keypress does 90 degree rotation (accomplished)
Change speed of rotation (can't figure out)
My current method is the only one I've found that seems to work. It will rotate the character a full 90 degrees left or right however I can't change how fast that occurs. I try adding "Time.deltaTime" but it ends up making it break like the other methods (which also use TdT).
Here is my method:
private float targetAngle = 0;
const float rotationAmount = 1.5f;
public float rSpeed = 1.0f;
if (Input.GetKeyDown(KeyCode.Q)) {targetAngle -= 90.0f;}
if (Input.GetKeyDown(KeyCode.E)) {targetAngle += 90.0f;}
if(targetAngle !=0){Rotate();}
protected void Rotate()
{
if (targetAngle>0)
{
transform.RotateAround(transform.position, Vector3.up, -rotationAmount);
targetAngle -= rotationAmount;
}
if(targetAngle <0)
{
transform.RotateAround(transform.position, Vector3.up, rotationAmount);
targetAngle += rotationAmount;
}
}
I've tried adding Time.deltaTime * rSpeed to rotationAmount but that doesn't do anything. I truly have no idea what to do.
Your answer
Follow this Question
Related Questions
2D sprite rotating in 3D plane 0 Answers
Player model rotates forward with camera 0 Answers
How can I get my model to face the direction it is moving? 2 Answers
How to change the angle my character falls at 1 Answer
Face direction to move in 2 Answers