Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. Join us on Thursday, June 8, for a Q&A with Unity's Content Pipeline group here on the forum, and on the Unity Discord, and discuss topics around Content Build, Import Workflows, Asset Database, and Addressables!
    Dismiss Notice

Discussion My character moves only to the left without me doing anything

Discussion in 'Scripting' started by sprtolansgz, Dec 21, 2022.

  1. sprtolansgz


    Dec 21, 2022
    My character moves by itself without me doing anything, I have already reviewed the movement code several times, I even tried trying other methods with the same function (moving the character) and they all continued with the same problem (The code worked in yes, but my character moves infinitely by itself) I also installed and uninstalled versions of unity client to see if it could be solved by doing that but no

    Do you think it could be a problem with the unity client? I am using version 2022 although in version 2021 and 2019 the same thing happened to me, could it be some configuration that I touched by accident? And if so, how do I return it to its original state?

    Here is one of the codes I used, I also tried with CharacterController
    public class PlayerController : MonoBehaviour
    private new Rigidbody rigidbody;

    public float speed = 10f;

    void Start()
    rigidbody = GetComponent<Rigidbody>();

    void Update()
    float hor = Input.GetAxisRaw("Horizontal");
    float ver = Input.GetAxisRaw("Vertical");

    if (hor != 0.0f || ver != 0.0f)
    Vector3 dir = transform.forward * ver + transform.right * hor;

    rigidbody.MovePosition(transform.position + dir * speed * Time.deltaTime);


    And this is other script i tried using CharacterController

    public class PlayerController : MonoBehaviour {

    public float horizontalMove;
    public float verticalMove;
    public CharacterController player;

    public float playerspeed;

    void Start() {
    player = GetComponent<CharacterController>();


    void Update() {

    horizontalMove = Input.GetAxis("Horizontal");
    verticalMove = Input.GetAxis("Vertical");


    private void FixedUpdate()
    player.Move(new Vector3(horizontalMove, 0, verticalMove) * playerspeed * Time.deltaTime);


    I used when I saw that they did not solve the problem, I saved and deleted from my project, right now I created a new file to focus on finding solutions to the problem, since with any script to move the character this happens to me with rigidbody or CharacterController I tried using the Debug.Log to find out if what was the problem but it didn't work either It sits on flat ground, I also turned gravity off but the problem was still working. No external forces are applied to the rigid body as it is a new project I made to focus on this problem. I don't have any other script currently in my project. This is the CharacterController script that I used and it didn't work for me, I'll give you the link where I got it too



    I would be very grateful if you help me solve this error that I have, I have been searching for a solution or explanation for two days in forums and youtube videosa
    Last edited: Dec 29, 2022
  2. chemicalcrux


    Mar 16, 2017
    Have you used Debug.log/print to check that the horizontal and vertical inputs are both 0 when you aren't holding any buttons down?

    If something is making them non-zero, then you'll certainly get this unwanted movement! I'm not sure what would cause this, though...maybe an extra controller that's been left plugged in?
  3. AngryProgrammer


    Jun 4, 2019
    Ignore YouTube tutorials and start Unity training. I've wasted a lot of time looking for solutions from self-proclaimed Unity gurus, and everything is clear on the official site.

    Everything necessary is divided into units and topics, areas into short films that you tick off. The method of learning first see, understand and repeat works perfectly (completion time is about 12 Weeks, 4-5 hr a week).
    Chubzdoomer and chemicalcrux like this.
  4. tleylan


    Jun 17, 2020
    Or the controller is failing.

    From the original post:
    Do you think it could be a problem with the unity client?

    Nope :) It would have already been reported and/or caught during testing. You have non-zero values which indicates to me that your controllers are failing and/or perhaps need cleaning.
  5. SF_FrankvHoof


    Apr 1, 2022
    Or he set the dead-zone to 0. No single controller is perfect.

    ProjectSettings -> InputManager -> Axes -> X -> Dead
  6. kdgalla


    Mar 15, 2013
    Yes, exactly. Use Debug.Log to see the value of Input.GetAxisRaw("Horizontal"). If you have a joystick (with an analog stick) plugged-in it will probably give you a non-zero number even if you aren't pressing the stick. Probably low like 0.001. You would just ignore any input unless it goes above a certain threshold.