- Home /
Question by
amelijac · Mar 11, 2020 at 10:45 PM ·
rotationmovementgetkeydown
is there a way to remember the previous key pressed?
im making a game where the players scale is 2,1,1, when you press "w" the player rotates and the scale essentialy becomes 1,2,1 (by rotating the object by 0, 0, -90) and when you hold down Shift the scale becomes 0.8, 3, 0.8. i dont know how to make the rotation after releasing shift the same as it was before pressing it (so if "w" was pressed before pressing Shift, after pressing shift, i would want the scale to be 2, 1, 1 and the rotation 0, 0, -90). im really bad at explaining this, heres how i wrote it:
if (Input.GetKey("a"))
{
rb.AddForce(-sforce * Time.deltaTime, 0, 0);
}
if (Input.GetKey("d"))
{
rb.AddForce(sforce * Time.deltaTime, 0, 0);
}
if (Input.GetKey("left shift"))
{
transform.localScale = new Vector3(0.8f, 3, 0.8f);
transform.rotation = Quaternion.Euler(0, 0, 0);
}
else
{
transform.localScale = new Vector3(2, 1, 1);
//something something to make the rotation the same as it was before pressing shift
}
if (Input.GetKeyDown(KeyCode.W))
{
transform.rotation = Quaternion.Euler(0, 0, -90);
if (pc.position.y == 2)
{
transform.position = pc.position + rsidecor;
}
}
if (Input.GetKeyDown(KeyCode.Space))
{
transform.rotation = Quaternion.Euler(0, 0, 0);
if(pc.position.y == 2.5)
{
transform.position = pc.position - rsidecor;
}
}
im very new to unity, this is my first game, so i apologize if the solution to this problem is really obvious but id really appreciate any help.
thanks for your time.
Comment