Problem with 2D movement. My character is moving by himself

Hello guys, I have a problem with my character, my character moves to right without I touch any key.

This is my code:

using UnityEngine;
using System.Collections;

public class Movimiento : MonoBehaviour
{

    public float velX = 0.03f;

    public float movX;

    public float Inputx;

    public bool mirandoDerecha;
    //Salto
    public float fsalto = 100f;

    public Transform Pie;
    public float radioPie;
    //Suelo
    public LayerMask suelo;

    public bool enSuelo;
    //agachado
    public bool agachado;

    public bool mirarArriba;


    Rigidbody2D rb;

    public float caida;
    //derrape
    public int derrape;

    public int derecha;

    public int izquierda;
    //turbo
    public bool run;

    public bool turbo;

    public bool turboSalto;

    //Concha
    public float patada = 500f;
    public Transform mano;
    public float radioMano;
    public LayerMask concha;
    public bool cogeConcha;
    public GameObject Concha;
    public GameObject Mario;
    //Animaciones
    Animator animator;

    void Awake()
    {


        animator = GetComponent<Animator>();

        rb = GetComponent<Rigidbody2D>();

    }


    // Use this for initialization
    void Start()
    {

    }

    // Update is called once per frame
    void FixedUpdate()
    {

        float Inputx = Input.GetAxis("Horizontal");

        if (!agachado && !mirarArriba)
        {




            if (Inputx > 0)
            {

                movX = transform.position.x + (Inputx * velX);

                transform.position = new Vector3(movX, transform.position.y, 0);

                transform.localScale = new Vector3(1, 1, 1);

                mirandoDerecha = true;


            }
            if (Inputx < 0)
            {

                movX = transform.position.x + (Inputx * velX);
                transform.localScale = new Vector3(-1, 1, 1);

                transform.position = new Vector3(movX, transform.position.y, 0);
                mirandoDerecha = false;
            }
        }
        if (Inputx != 0 && enSuelo == true)
        {
            animator.SetFloat("velX", 1);

        }
        else
        {
            animator.SetFloat("velX", 0);
        }
        //Salto
        enSuelo = Physics2D.OverlapCircle(Pie.position, radioPie, suelo);
        if (enSuelo)
        {
            if (Input.GetKeyDown(KeyCode.Space) && !agachado)
            {

                GetComponent<Rigidbody2D>().AddForce(new Vector2(0, fsalto));
                animator.SetBool("enSuelo", false);
            }

            animator.SetBool("enSuelo", true);

        }
        else
        {
            animator.SetBool("enSuelo", false);
        }
        if (Input.GetKeyDown(KeyCode.Space) && !agachado)
        {

            GetComponent<Rigidbody2D>().AddForce(new Vector2(0, fsalto));
            animator.SetBool("enSuelo", false);
        }

        //agacharse
        if (enSuelo && Input.GetKey(KeyCode.DownArrow))
        {

            animator.SetBool("agachado", true);
            agachado = true;
        }
        else
        {

            animator.SetBool("agachado", false);

            agachado = false;

        }

        if (Inputx == 0)
        {
            if (enSuelo && Input.GetKey(KeyCode.UpArrow))
            {

                animator.SetBool("mirarArriba", true);
                mirarArriba = true;

            }
            else
            {

                animator.SetBool("mirarArriba", false);
                mirarArriba = false;
            }

        }


        caida = rb.velocity.y;

        if (caida != 0 || caida == 0)
        {

            animator.SetFloat("velY", caida);

        }

        //derrape
        if (Input.GetKey(KeyCode.LeftArrow) && !Input.GetKey(KeyCode.RightArrow))
        {

            StartCoroutine(TiempoEspera());
        }


        //asad

        if (Inputx > 0.5f)
        {

            derecha = 1;


        }

        if (derecha == 1)
        {

            derrape = 1;


        }

        if (derrape == 1 && Input.GetKey(KeyCode.LeftArrow))
        {
            animator.SetBool("derrape", true);
            StartCoroutine(TiempoEspera());
        }

        if (Inputx < 0)
        {

            izquierda = 1;


        }
        if (izquierda == 1)
        {

            derrape = -1;


        }

        if (derrape == -1 && Input.GetKey(KeyCode.RightArrow))
        {
            animator.SetBool("derrape", true);

            StartCoroutine(TiempoEspera());
        }

        //Correr

        if (Inputx > 0 || Inputx < 0)
        {

            if (Input.GetKey(KeyCode.Z))
            {

                run = true;
                velX = 0.031f;

                animator.SetBool("run", true);
                StartCoroutine(Turbo());

            }
            else
            {

                velX = 0.03f;

                run = false;

                turbo = false;

                animator.SetBool("run", false);
            }

        }

        if (Inputx == 0)
        {
            animator.SetBool("run", false);
            animator.SetBool("turbo", false);
            animator.SetBool("turboSalto", false);
        }

        //Turbo
        if (Inputx > 0 || Inputx < 0)
        {

            if (turbo == true)
            {


                animator.SetBool("turbo", true);




            }
            else
            {



                animator.SetBool("turbo", false);
            }

        }
        //Turbo salto

        if (Inputx > 0 || Inputx < 0)
        {

            if (turbo = true && Input.GetKey(KeyCode.X))
            {

                animator.SetBool("turboSalto", true);



            }
            else
            {

                animator.SetBool("turboSalto", false);

            }
        }

        //Concha
        cogeConcha = Physics2D.OverlapCircle(mano.position, radioMano, concha);

        if (cogeConcha && mirandoDerecha)
        {
            if (Input.GetKey(KeyCode.Z))
            {
                Concha.transform.parent = Mario.transform;
                Concha.GetComponent<Rigidbody2D>().gravityScale = 0;
                Concha.GetComponent<Rigidbody2D>().isKinematic = true;
            }

            else
            {
                Concha.GetComponent<Rigidbody2D>().AddForce(new Vector2(patada, 0));
                Concha.transform.parent = null;
                Concha.GetComponent<Rigidbody2D>().gravityScale = 3;
                Concha.GetComponent<Rigidbody2D>().isKinematic = false;
            }
        }

        if (cogeConcha && !mirandoDerecha)
        {
            if (Input.GetKey(KeyCode.Z))
            {
                Concha.transform.parent = Mario.transform;
                Concha.GetComponent<Rigidbody2D>().gravityScale = 0;
                Concha.GetComponent<Rigidbody2D>().isKinematic = true;
            }

            else
            {
                Concha.GetComponent<Rigidbody2D>().AddForce(new Vector2(patada * (-1), 0));
                Concha.transform.parent = null;
                Concha.GetComponent<Rigidbody2D>().gravityScale = 3;
                Concha.GetComponent<Rigidbody2D>().isKinematic = false;
            }


        }

    }
    //fin fixupdate
    public IEnumerator TiempoEspera()
    {

        yield return new WaitForSeconds(0.3f);

        derrape = 0;
        derecha = 0;
        izquierda = 0;

        animator.SetBool("derrape", false);
    }

    public IEnumerator Turbo()
    {
        yield return new WaitForSeconds(0.5f);

        if (run == true)
        {
            velX = 0.15f;
            turbo = true;
        }
        else
        {
            StopCoroutine(Turbo());

        }
    }
}

Well your code works perfect for me, I can give you a set of questions that might shed some light on the issue

  • Do yo have a miss configured input?
  • Are you using a joystick?
  • Have you checked the dead zone of the Horizontal axis?
  • Is your rigid body configured correctly?
  • What kind of collider are you using?
  • Have you freeze the RB2D rotation?