- Home /
Basic character movement with joystick
Hello, After searching and trying several things for the past 4 hours I am ready to search for any help. I am trying to create a top down "gauntlet" style game. I have a xbox 360 controller setup and am just trying to get basic character movement down. Here is the script that I have written thus far:
//Default moving speed
var speed = 6.0;
var gravity = 20.0;
private var moveDirection = Vector3.zero;
function FixedUpdate() {
var controller : CharacterController = GetComponent(CharacterController);
moveDirection = Vector3(Input.GetAxis("Horizontal1"), 0, Input.GetAxis("Vertical1"));
moveDirection = transform.TransformDirection(moveDirection);
moveDirection *= speed;
moveDirection.y -= gravity * Time.deltaTime;
controller.Move(moveDirection * Time.deltaTime);
}
Now when I run my game The character seems to move opposite of what I do. (Up on the joystick send the character down and vice versa) Also Left seems to work but pressing right the character does not move, very strange... Maybe my input manager settings are screwed up. Does the above code seem correct for moving my character? Thanks in advance
Answer by Blecz · Feb 02, 2016 at 05:31 PM
Hey man, if you're using a quaternion to rotate your char, try to remove the line 14:
moveDirection = transform.TransformDirection(moveDirection);
It worked for me...
Your answer
Follow this Question
Related Questions
The name 'Joystick' does not denote a valid type ('not found') 2 Answers
Controller Joystick Hold Delay Logic? 1 Answer
How to get 8 direction Movement with controller sticks | Topdown 3D 1 Answer
How do I listen for Input from joystick/buttons on a controller? 1 Answer
Xbox controller numbers not always the same as game joysticks 0 Answers