I’m making a game that uses a gravity system like Super Mario Galaxy. I tried using axes for movement but it didn’t work. How could I rotate my character relative to the direction it’s moving in while using keys directly for movement?
This is my script:
var mvfrwrd = false;
if (gameObject)
{
if (Input.GetKey(KeyCode.UpArrow))
{
mvfrwrd = true;
if (mvfrwrd == true)
{
Rb.velocity += camera.transform.forward * MovementSpeed;
}
}
if (Input.GetKeyUp(KeyCode.UpArrow))
{
Thread.Sleep(1);
Rb.velocity += Vector3.zero;
mvfrwrd = false;
}
}
var mvbkwrd = false;
if (gameObject)
{
if (Input.GetKey(KeyCode.DownArrow))
{
mvbkwrd = true;
if (mvbkwrd == true)
{
Rb.velocity += -camera.transform.forward * MovementSpeed;
}
if (Input.GetKeyUp(KeyCode.DownArrow))
{
Thread.Sleep(1);
Rb.velocity += Vector3.zero;
mvbkwrd = false;
}
}
var mvlft = false;
if (gameObject)
{
if (Input.GetKey(KeyCode.LeftArrow))
{
mvlft = true;
if (mvlft == true)
{
Rb.velocity += -camera.transform.right * MovementSpeed;
}
}
if (Input.GetKeyUp(KeyCode.LeftArrow))
{
Thread.Sleep(1);
Rb.velocity += Vector3.zero;
mvbkwrd = false;
}
}
var mvrght = false;
if (gameObject)
{
if (Input.GetKey(KeyCode.RightArrow))
{
mvrght = true;
if (mvrght == true)
{
Rb.velocity += transform.right * MovementSpeed;
}
}
if (Input.GetKeyUp(KeyCode.RightArrow))
{
Thread.Sleep(1);
Rb.velocity += Vector3.zero;
mvbkwrd = false;
}
}