I’ve made a script for my character’s movement however I’ve come across the problem in which no matter which direction I face the camera the character doesn’t follow it and just keeps going in 1 direction. I’m currently using the default MouseLook C# script by unity for the camera.
Movement script:
public class PlayerMovement : MonoBehaviour {
public float playerSpeed = 5.0f;
// Update is called once per frame
void Update()
{
Vector3 vectorPosition = transform.position;//get position and put it back in
if (Input.GetAxis("Right Joystick Vertical") > 0f)
{
vectorPosition.z += playerSpeed * Time.deltaTime;
}
else if (Input.GetAxis("Right Joystick Vertical") < 0f)
{
vectorPosition.z -= playerSpeed * Time.deltaTime;
}
else if (Input.GetAxis("Right Joystick Horizontal") > 0f)
{
vectorPosition.x += playerSpeed * Time.deltaTime;
}
else if (Input.GetAxis("Right Joystick Horizontal") < 0f)
{
vectorPosition.x -= playerSpeed * Time.deltaTime;
}
else if (Input.GetKey(KeyCode.S))
{
vectorPosition.z -= playerSpeed * Time.deltaTime;
}
else if (Input.GetKey(KeyCode.W))
{
vectorPosition.z += playerSpeed * Time.deltaTime;
}
else if (Input.GetKey(KeyCode.A))
{
vectorPosition.x -= playerSpeed * Time.deltaTime;
}
else if (Input.GetKey(KeyCode.D))
{
vectorPosition.x += playerSpeed * Time.deltaTime;
}
transform.position = vectorPosition;
}
}
Another little bug I have with this code is that it only allows 1 action at a time. e.g. press W & A to go diagonally at a westerly angle ends up with character moving ignoring the A key and carrying on walking forwards.