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());
}
}
}