Mon premier jeu 2D
Publié : 29 Jan 2021 15:35
Bonjour,
Qui pourrait m'aider avec le code de mon personnage 2D ? j'ai un souci avec le saut.
Quand mon perso saute en courant le personnage bascule en avant ou arrière quand il touche le sol... Pourquoi ?
voici le code :
Qui pourrait m'aider avec le code de mon personnage 2D ? j'ai un souci avec le saut.
Quand mon perso saute en courant le personnage bascule en avant ou arrière quand il touche le sol... Pourquoi ?
voici le code :
Code : Tout sélectionner
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class déplacement : MonoBehaviour {
public GameObject perso;
public Animator animPerso;
public float vitesse = 4.0f;
public float vitesseSautAvant = 1.0f;
public Rigidbody2D RB;
void Start () {
animPerso = this.GetComponent<Animator>();
RB = this.GetComponent<Rigidbody2D>();
}
void Update () {
Deplacement();
}
void Deplacement()
{
if (Input.GetKey(KeyCode.RightArrow))
{
animPerso.Play("marche");
RB.transform.Translate(Vector2.right * vitesse * Time.deltaTime);
RB.transform.localScale = new Vector3(2, 2, 1);
if (Input.GetKey(KeyCode.Space))
{
animPerso.Play("saut");
RB.transform.Translate(Vector2.up * vitesse * Time.deltaTime);
RB.AddForce(new Vector2(RB.velocity.x + vitesseSautAvant, RB.velocity.y + 2));
}
}
else if (Input.GetKey(KeyCode.LeftArrow))
{
animPerso.Play("marche");
RB.transform.Translate(Vector2.left * vitesse * Time.deltaTime);
RB.transform.localScale = new Vector3(-2, 2, 1);
if (Input.GetKey(KeyCode.Space))
{
animPerso.Play("saut");
RB.transform.Translate(Vector2.up * vitesse * Time.deltaTime);
RB.AddForce(new Vector2(RB.velocity.x + vitesseSautAvant, RB.velocity.y + 1));
}
}
else if (Input.GetKey(KeyCode.Space))
{
RB.transform.Translate(Vector2.up * 4 * Time.deltaTime);
animPerso.Play("saut");
}
else if (!Input.GetKeyDown(KeyCode.RightArrow))
{
animPerso.Play("perso_fixe");
}
else if (!Input.GetKeyDown(KeyCode.LeftArrow))
{
animPerso.Play("perso_fixe");
}
else
{
animPerso.Play("perso_fixe");
}
}
}