Question by
Warcanjo · Sep 10, 2016 at 08:52 AM ·
movementinputmovement scriptaxis
Help changing input to axis
Hello guys I coded this movement some time ago, and, I need now to change my movement from the input to the axis. I haven't used axis, because the negative values need to rotate the character too. Can anybody help me changing the following code input to axis input? I really appreciate it, thanks anyway
void Update() {
moveVector = Vector3.zero;
playerController = GetComponent<CharacterController> ();
//Directions
Vector3 yForward = Camera.main.transform.forward;
yForward.y = 0.0f;
Quaternion rotationForward = Quaternion.LookRotation (yForward);
Vector3 yRight = Camera.main.transform.right;
yRight.y = 0.0f;
Quaternion rotationRight = Quaternion.LookRotation (yRight);
Vector3 yLeft = Camera.main.transform.right * -1f;
yLeft.y = 0.0f;
Quaternion rotationLeft = Quaternion.LookRotation (yLeft);
Vector3 yBackward = Camera.main.transform.forward * -1f;
yBackward.y = 0.0f;
Quaternion rotationBackward = Quaternion.LookRotation (yBackward);
vSpeed -= gravity * Time.deltaTime;
Vector3 yDownward = Vector3.down;
yDownward.x = 0.0f;
yDownward.z = 0.0f;
//Movement
if (playerController.isGrounded){
moveSpeed = walkSpeed;
vSpeed = 0.0f;
if (inCombat == false) {
if (Input.GetButton ("Forward")) {
transform.rotation = Quaternion.Lerp (transform.rotation, rotationForward, rotationSpeed * Time.deltaTime);
Vector3 forward = transform.TransformDirection (Vector3.forward);
moveVector += transform.forward;
}
if (Input.GetButton ("Right")) {
transform.rotation = Quaternion.Lerp (transform.rotation, rotationRight, rotationSpeed * Time.deltaTime);
Vector3 forward = transform.TransformDirection (Vector3.forward);
moveVector += transform.forward;
}
if (Input.GetButton ("Left")) {
transform.rotation = Quaternion.Lerp (transform.rotation, rotationLeft, rotationSpeed * Time.deltaTime);
Vector3 forward = transform.TransformDirection (Vector3.forward);
moveVector += transform.forward;
}
if (Input.GetButton ("Backward")) {
transform.rotation = Quaternion.Lerp (transform.rotation, rotationBackward, rotationSpeed * Time.deltaTime);
Vector3 forward = transform.TransformDirection (Vector3.forward);
moveVector += transform.forward;
}
if (Input.GetButton ("Fire2")) {
moveSpeed = runSpeed;
}
playerController.Move (moveVector.normalized * Time.deltaTime * moveSpeed);
float playerSpeed = playerController.velocity.magnitude;
anim.SetFloat ("Speed", playerSpeed);
}
Comment
Your answer
Follow this Question
Related Questions
movement speed still changes with FPS; Despite using Time.deltaTime (And GetAxisRaw)! 0 Answers
Make the Player unable to move to opposite direction 1 Answer
Movement Based On Direction Player is Facing 1 Answer
Player only moves when the key is pressed, not when it's held. 0 Answers
Hi, got a problem with my vertical axis. 0 Answers