Hey all,
I am working on getting an Xbox 360 controller working on for my FPS game. I was able to get it to work, button press and looking with the right thumb. The problem I ham having is with the left thumb for my movement.
I inverted the Y in the input manger so when i press up i move forward and down i move backward. It works good until i move at an angle, when both axis are greater then zero. Example: when i press up and left at like at 45 degrees, my FPS controller will move back and to the left. but if i just push up my fps controller will move forward.
I looked for code to try and fix this with no luck. I tried FPSWalkerEnhanced, and it did the same thing.
I tweaked the normal FPSWalker code a lil and it help, but was a lil glitchy ( see Below)
function FixedUpdate() {
if (grounded) {
var inputX = Input.GetAxis("Horizontal");
var inputY = Input.GetAxis("Vertical");
if(inputX != 0.0 && inputY != 0.0)
{
moveDirection = new Vector3(inputX, 0, -inputY);
moveDirection = transform.TransformDirection(moveDirection);
moveDirection *= speed;
}
else
{
moveDirection = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));
moveDirection = transform.TransformDirection(moveDirection);
moveDirection *= speed;
}
I was wondering if anyone might know what I am doing wrong, or if there is any code out there that will work better with an xbox360 controller.
Thanks
So to understand a bit better do you want to use only the right stick to move and look simultaneously ? what I did with the controller using the 2.6 first person controller (it must be similar with 3) was to have the left stick as it is to move around (default) and for the right stick i mapped it to mouse x and mouse y without inverting anything. I just went in player preferences input and added two more mouse x and mouse y controlled by the joystick.
– anon38948166